我試圖添加一個子窗口到我的主窗口,但函數CreatWindow正在thrwoing一個異常,說無法訪問地址0x00000,但它工作正常,當我嘗試創建一個按鈕,我跟蹤變量和他們都不空,那就是:在Windows API上創建子窗口
WNDCLASSEX windowClass;
windowClass.cbSize = sizeof(WNDCLASSEX);
windowClass.hInstance = hInstance;
windowClass.lpfnWndProc = NULL;
windowClass.lpszClassName = className;
windowClass.style = CS_HREDRAW | CS_VREDRAW;
windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
windowClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
windowClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
windowClass.lpszMenuName = NULL;
if (!RegisterClassEx(&windowClass)){
return;
}
window = CreateWindowEx(0,
className,
(LPCTSTR)NULL,
WS_CHILD | WS_BORDER,
0, 0, 0, 0,
owner,
(HMENU)ID,
hInstance,
NULL);
上面給出的錯誤代碼,最重要的變量來自這裏:
gl = new OpenGLContainer("hellogl", hInstance);
addChild(gl);
第一個參數是className,構造函數只執行一個屬性,addChild方法調用gl- > setOwner(window_handler)和gl-> create()這是我發佈的第一段代碼。
我也看到了堆棧列表,問題出在程序進入CreateWindow函數後,這很奇怪,因爲調試器顯示沒有任何值(指針)爲空。感謝您的幫助
'NULL'指針是窗口過程。在'CreateWindowEx'返回之前,它會嘗試調用WM_NCCREATE和WM_CREATE消息的窗口過程。 – IInspectable