SetWindowLong(...,GWL_WNDPROC...)后,边框、文字显示不出来了

test_lockxxx 2013-08-19 09:45:31
//C & win32 API

HWND group_save = CreateWindowEx(0, "button", "基本设置",
BS_GROUPBOX | WS_CHILD | WS_VISIBLE,
0, // xpos
518, // ypos
239, //width
80, //height
hwnd_panel, NULL, g_hInstance, NULL) ;


//调用下面这句话后,上面的GROUPBOX元件就没有边框了,基本设置这4个字也不见了。
SetWindowLong(group_save,GWL_WNDPROC,Panel_Procedure);

请问,调用SetWindowLong后,怎么才能正常的显示“基本设置”4个字和边框线。

...全文
170 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
test_lockxxx 2013-08-19
  • 打赏
  • 举报
回复
实在没办法,我现在在 BS_GROUPBOX 下面再新建了一个 static , 然后再把 button 放在 static下面。 就行了。 原来的结构是: BS_GROUPBOX | |----Button 现在调整成: BS_GROUPBOX | |----Static (这一层不绘制也无所谓了 | |----Button SetWindowLong(BS_GROUPBOX,GWL_WNDPROC,...) 调整为 SetWindowLong(Static ,GWL_WNDPROC,...) 这也是目前无奈的选择了。
赵4老师 2013-08-19
  • 打赏
  • 举报
回复
元件绘制功能当然是放在旧窗口过程中对WM_PAINT消息处理的地方啦。
test_lockxxx 2013-08-19
  • 打赏
  • 举报
回复
楼上的方法我试了,不行,不过也要谢谢您。 调用 SetWindowLong(...,GWL_WNDPROC,...)后,为什么会影响到元件的绘制呢?
赵4老师 2013-08-19
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
SetWindowLong(group_save,(GetWindowsLong(group_save))|GWL_WNDPROC,Panel_Procedure);
不一定对,仅供参考。
赵4老师 2013-08-19
  • 打赏
  • 举报
回复
SetWindowLong(group_save,(GetWindowsLong(group_save))|GWL_WNDPROC,Panel_Procedure);
test_lockxxx 2013-08-19
  • 打赏
  • 举报
回复
不使用 MFC

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧