windows编程中如何建一个子窗口并显示它啊。下面这样没有显示。求大神帮忙。。

2024-11-14 03:33:20
推荐回答(2个)
回答(1):

在WndProc中WM_CREATE中的CreateWindow的下面一行你为什么要ShowWindow和UpdateWindow呢?CreateWindow中已经指定了WS_VISIBLE了,况且iCmdShow在WndProc中作为局部变量未经初始化,结果当然不可控了。把那个ShowWindow和UpdateWindow去了就行了。看到你的“This program requires windows NT!”相信你肯定是看的Windows程序设计吧,可以再认真看看子窗口控件部分

回答(2):

1.子窗口的ShowWindow(hwndchild,SW_SHOWNORMAL);第二个参数有问题 ,定义了但没初始化
2.
x=((CREATESTRUCT*)lParam)->x; y=((CREATESTRUCT*)lParam)->y;
hwndchild=CreateWindow(szChildclass,NULL,
WS_CHILDWINDOW | WS_VISIBLE,x-100,y-100,x,y,hwnd,NULL,
(HINSTANCE) GetWindowLong(hwnd,GWL_HINSTANCE),NULL);
倒数第3个参数,与sdk的有异,HIWORD 和LOWORD用错,在wm_size时用
建议把x,y换成一个指定值,如果想用lparam,父窗口的 CW_USEDEFAULT最好换成指定值,特别是后2个CW_USEDEFAULT