MCPcopy Create free account
hub / github.com/BeneficialCode/WinArk / OnCreate

Method OnCreate

WinArk/WindowsView.cpp:366–437  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

364}
365
366LRESULT CWindowsView::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) {
367 // ��������һ��ı��С
368 m_Splitter.SetSplitterExtendedStyle(SPLIT_FLATBAR | SPLIT_PROPORTIONAL);
369 m_Splitter.Create(m_hWnd, rcDefault, nullptr, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_CLIENTEDGE);
370
371 m_List.Create(m_Splitter, rcDefault, nullptr, WS_CHILD | WS_VISIBLE |
372 WS_CLIPCHILDREN |WS_CLIPSIBLINGS |
373 LVS_REPORT | LVS_OWNERDATA | LVS_SINGLESEL | LVS_SHAREIMAGELISTS);
374 m_Tree.Create(m_Splitter, rcDefault, nullptr, WS_CHILD | WS_VISIBLE
375 | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | TVS_SHOWSELALWAYS, WS_EX_CLIENTEDGE, IDC_WINDOW_TREE);
376
377
378
379 m_List.SetExtendedListViewStyle(LVS_EX_FULLROWSELECT | LVS_EX_DOUBLEBUFFER | LVS_EX_INFOTIP);
380 m_Tree.SetExtendedStyle(TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER);
381
382 if (s_Images == nullptr) {
383 s_Images.Create(16, 16, ILC_COLOR32, 32, 32);
384 s_Images.AddIcon(AtlLoadIconImage(IDI_WINDOW, 0, 16, 16));
385 }
386 m_Tree.SetImageList(s_Images, TVSIL_NORMAL);
387 m_List.SetImageList(s_Images, LVSIL_SMALL);
388
389 m_Splitter.SetSplitterPanes(m_Tree, m_List);
390 // ���÷ָ�����λ��
391 m_Splitter.SetSplitterPosPct(35);
392
393 auto cm = GetColumnManager(m_List);
394
395 struct {
396 PCWSTR text;
397 DataItemType type;
398 int width;
399 int format = LVCFMT_LEFT;
400 ColumnFlags flags = ColumnFlags::Visible;
401 }columns[] = {
402 { L"Class Name", DataItemType::ClassName, 140 },
403 { L"Handle", DataItemType::Handle, 80, LVCFMT_RIGHT },
404 { L"Text", DataItemType::Text, 150 },
405 { L"Style", DataItemType::Style, 80, LVCFMT_RIGHT },
406 { L"Ex Style", DataItemType::ExtendedStyle, 80, LVCFMT_RIGHT },
407 { L"PID", DataItemType::ProcessId, 70, LVCFMT_RIGHT },
408 { L"Process Name", DataItemType::ProcessName, 120 },
409 { L"TID", DataItemType::ThreadId, 70, LVCFMT_RIGHT },
410 { L"Rectangle", DataItemType::Rectangle, 170, LVCFMT_LEFT, ColumnFlags::None },
411 { L"Parent HWND", DataItemType::ParentWindow, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
412 { L"Owner HWND", DataItemType::OwnerWindow, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
413 { L"Next HWND", DataItemType::NextWindow, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
414 { L"Previous HWND", DataItemType::PrevWindow, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
415 { L"First Child HWND", DataItemType::FirstChildWindow, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
416 { L"WndProc", DataItemType::WindowProc, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
417 { L"User Data", DataItemType::UserData, 100, LVCFMT_RIGHT, ColumnFlags::Fixed },
418 { L"ID", DataItemType::ID, 80, LVCFMT_RIGHT, ColumnFlags::Fixed },
419 { L"Class Atom", DataItemType::ClassAtom, 90, LVCFMT_RIGHT },
420 { L"Class Style", DataItemType::ClassStyle, 80, LVCFMT_RIGHT, ColumnFlags::Fixed },
421 { L"Class Extra Bytes", DataItemType::ClassExtra, 70, LVCFMT_RIGHT, ColumnFlags::Fixed },
422 { L"Window Extra Bytes", DataItemType::WindowExtra, 70, LVCFMT_RIGHT, ColumnFlags::Fixed },
423 };

Callers

nothing calls this directly

Calls 4

AddColumnMethod · 0.80
UpdateColumnsMethod · 0.80
reserveMethod · 0.80
CreateMethod · 0.45

Tested by

no test coverage detected