создал главное окно: Код (Text): hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL); и на нём пытаюсь создать "SysListView32": Код (Text): hWndProperties = CreateWindowEx( WS_EX_OVERLAPPEDWINDOW, (LPCWSTR)"SysListView32", NULL, WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS, 152, 40, 128, 200, hWnd, (HMENU) NULL, (HINSTANCE) hInst, NULL); GetLastError() возвращает 1406. возможно неправильно указываю стиль одного из окон? P.S. InitCommonControlsEx() успешно инициализирован
LVS_EX_FULLROWSELECT не в тему. Его нужно отдельным сообщением устанавливать. Ну и ws_child с ws_overlapped не логично, хотя в реальности не влияет.
Как была инициализирована InitCommonControlsEx? Код можно посмотреть? P.S. Я обычно использую не Ex - функцию, с InitCommonControlsEx какие-то проблемы постоянно возникают
Код (Text): icex.dwSize = sizeof(INITCOMMONCONTROLSEX); icex.dwICC = ICC_LISTVIEW_CLASSES; if (!InitCommonControlsEx(&icex)) { return FALSE; }; в MSDN написано: ИМХО ошибка где-то в CreateWindowEx()
А можно бинарник глянуть?! // // MessageId: ERROR_TLW_WITH_WSCHILD // // MessageText: // // Cannot create a top-level child window. // #define ERROR_TLW_WITH_WSCHILD 1406L
Вот оно: hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL); Ты пытаешся создать дочернее окно, которое не помещается на главном.
убирал, было и WS_EX_CLIENTEDGE и NULL, убирал "LVS_REPORT | LVS_EX_FULLROWSELECT | LVS_SHOWSELALWAYS" ещё добавлял либу comctl32.lib к проекту, без неё не линкует.
IceStudent twgt cresta жутко извиняюсь! попытка создать "SysListView32" перед созданием основного окна... ;( P.S. вместо "SysListView32" надо писать WC_LISTVIEW.
#define WC_LISTVIEW TEXT("SysListView32") Это "надо" только для того, чтобы избежать синтаксических ошибок в написании имени класса.
int2eh Умничаешь? Код (Text): #ifdef _WIN32 #define WC_LISTVIEWA "SysListView32" #define WC_LISTVIEWW L"SysListView32" #ifdef UNICODE #define WC_LISTVIEW WC_LISTVIEWW #else #define WC_LISTVIEW WC_LISTVIEWA #endif #else #define WC_LISTVIEW "SysListView" #endif
t00x Странно, что у тебя не так Код (Text): invoke InitCommonControlsEx,icc invoke CreateWindowEx,WS_EX_APPWINDOW,szs,szs,WS_CAPTION or WS_POPUPWINDOW or WS_VISIBLE or SS_SIMPLE,100,100,200,100,ebx,ebx,10000h,ebx push eax invoke CreateWindowEx,ebx,szc,szc,WS_CHILD or LVS_REPORT or WS_VISIBLE,0,0,100,100,eax,ebx,10000h,ebx push eax invoke Sleep,3000 invoke DestroyWindow invoke DestroyWindow ... szs db 'Static',0 szc db 'SysListView32',0
Ещё один вопрос. ComboBox содержит элементы, но не отображает выпадающий список, т.е. раскрывается вниз на 0 элементов, пробовал использовать "ComboBox_SetMinVisible(hWndForms, 2)" - не помогло.