求助:MFC 应用程序,怎么得到窗口句柄,谢谢!

MJXQJ888 2008-03-27 08:23:00
请教:

HWND hWnd;
cnComm com1; //定义串口

//关联消息的窗口句柄
inline void SetWnd(HWND hWnd)
{
assert(::IsWindow(hWnd));
_hNotifyWnd = hWnd;
}


现在在
BOOL CMyDlg::OnInitDialog()
{
com1.SetWnd(hWnd); //把 com1 和窗口 句柄联系起来
}

可是 hWnd 怎么得到啊?

谢谢!
...全文
63 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chappell 2008-03-27
  • 打赏
  • 举报
回复

BOOL CMyDlg::OnInitDialog()
{
com1.SetWnd(this->m_hWnd); //把 com1 和窗口 句柄联系起来
}

我看你有戏 2008-03-27
  • 打赏
  • 举报
回复
com1.SetWnd(m_hWnd);
成员m_hWnd 拿来用就可以了啊
csdn5211 2008-03-27
  • 打赏
  • 举报
回复
FindWindow
Supper_Jerry 2008-03-27
  • 打赏
  • 举报
回复
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);
vrace 2008-03-27
  • 打赏
  • 举报
回复
this->GetSafeHwnd();
昨夜无风 2008-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Chappell 的回复:]
C/C++ code
BOOL CMyDlg::OnInitDialog()
{
com1.SetWnd(this->m_hWnd); //把 com1 和窗口 句柄联系起来
}
[/Quote]
Chappell 2008-03-27
  • 打赏
  • 举报
回复
MFC用映射表封装了原来win32程序的消息循环。
你要自己定义消息和消息映射函数。

BEGIN_MESSAGE_MAP(CMfccApp, CWinApp)
//{{AFX_MSG_MAP(CMfccApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

ID_HELP的COMMAND消息会触发CWinApp::OnHelp函数的调用。

google一下“MFC自定义消息”,应该可以找到你想要的答案。
MJXQJ888 2008-03-27
  • 打赏
  • 举报
回复
谢谢各位大哥,还有一个问题

switch( msg )
{
//----------------------------------------接收到串口的消息-----------------------
case ON_COM_RECEIVE:
{
hdc = GetDC(hWnd);
On_Receive(hdc);
ReleaseDC(hWnd,hdc);
}
break;
//----------------------------------------接收到串口的消息----------------

default:
break;
}

在 MFC 里,这样的语句往哪里放?

MFC 里没有消息循环啊?
谢谢!
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-27 08:23
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下