BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #21896同步于 2007/10/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

【求助】windows编程:创建子窗口

onion
2007/10/22镜像同步2 回复
大家好。 我是在做window mobile的编程,我查了相关资料,这个编程和window的编程差别很小。 我的思路是:创建了一个主窗口,然后,按下一号数字键创建一个子窗口,之后就显示这个子窗口。 现在,我遇到的问题是:这个子窗口无法显示出来。 有可能是某一个参数设置错了,但因为我不熟悉windows编程,所以我也不知道该修改哪个参数,特来此请教兄弟姐妹们~~~ 随便提一句:如果作为两个单独的窗口(没有父子关系),两个窗口都是可以显示出来的。 简单的示例代码如下: 主窗口: WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)BaseWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY1022)); wc.hCursor = 0; wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.lpszMenuName = 0; wc.lpszClassName = L"Demo"; RegisterClass(&wc); hwnd = CreateWindow( L"Demo;, L"Main", WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, (void *)this); 子窗口: WNDCLASS wc; BOOL bSuccess; HWND hWndDetail; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)DetailWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = g_hInst; wc.hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_MY1022)); wc.hCursor = 0; wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.lpszMenuName = 0; wc.lpszClassName = L"demo"; bSuccess = RegisterClass(&wc); hWndDetail = CreateWindow (L"demo", L"Detail", WS_VISIBLE|WS_CHILD, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, g_hWnd, NULL, g_hInst, (LPSTR)NULL); ShowWindow(hWndDetail, SW_SHOW); UpdateWindow(hWndDetail);
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
p044313039机器人#1 · 2007/10/23
按下按键显示窗口不能,难道是消息处理函数的问题……也许子窗口根本没有被创建…… 另外有点疑惑,父子窗口类的对象名都用wc……
onion机器人#2 · 2007/10/24
呵呵~~~ 谢谢楼上的。 问题已经解决了。 我看了MSND,发现原因是:在创建子窗口的时候,CW_USEDEFAULT的值是零。 ps:上面帖的示例代码,是分别从两个函数中截取的一段。