如何获取当前窗口的句柄?

rockwater 2004-04-02 02:56:11
在一个SDI程序里面,如何获取当前窗口也就是主窗口的句柄?
...全文
1088 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rockwater 2004-04-02
  • 打赏
  • 举报
回复
HWND hWnd = GetParentFrame()->m_hWnd

^_^,我用这个就好了
谢谢大家了.....
非常感谢!!!
zhjie374 2004-04-02
  • 打赏
  • 举报
回复
AfxGetMainWnd()->GetSafeHwnd()
striking 2004-04-02
  • 打赏
  • 举报
回复
HWND hWnd = AfxGetApp()->m_pMainWnd->GetSafeHwnd();
或者
HWND hWnd = GetParentFrame()->m_hWnd
ymbymb 2004-04-02
  • 打赏
  • 举报
回复
SDI程序你应该到视类里面绘图
void CMyView::OnDraw(CDC* pDC)
{
pDC->MoveTo(0, 0);
pDC->LineTo(10, 100);
}
rockwater 2004-04-02
  • 打赏
  • 举报
回复

HWND hWnd = AfxGetMainWnd()->GetSafeHwnd();
我DeBug得到hWnd的值是0x00000000,一个无效值,怎么回事呢?
我还是用不了那个句柄,呜
ymbymb 2004-04-02
  • 打赏
  • 举报
回复
HWND hwnd = AfxGetApp()->m_pMainWnd->GetSafeHwnd();
rockwater 2004-04-02
  • 打赏
  • 举报
回复
大哥,我想要的是窗口的句柄,不是窗口的指针啊。我也不想让窗口最大化最小化什么的,我只是想得到窗口的句柄,好在里面绘图而已。
快乐鹦鹉 2004-04-02
  • 打赏
  • 举报
回复
AfxGetApp()->m_pMainWnd就是主窗口的指针。
zjzhl 2004-04-02
  • 打赏
  • 举报
回复
上面回答基本正确,但有个问题就是,AfxGetMainWnd()->GetSafeHwnd()才是其Handle,AfxGetMainWnd()只是获得一个CWnd*的指针。一个小问题而已。
bohut 2004-04-02
  • 打赏
  • 举报
回复
窗口的 指针保存在CWinThread::m_pMainWnd中,调用 AfxGetMainWnd实现。
例子:
AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED); //使程序最大化.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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