MFC/WINDOW访问(设置)控件内容及句柄的常用的方法和自定义消息方法

本文介绍了MFC/WINDOW环境下访问和设置控件内容及句柄的各种方法,包括通过AfxGetMainWnd获取自身窗口句柄,使用FindWindow查找其他应用程序窗口,利用指针获取窗口句柄,以及GetSafeHwnd和GetDlgItem函数的运用。此外,还讨论了通过控件ID号获取控件,并讲解了自定义消息的实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、内容
1.GetDlgItem(编辑框ID)->GetWindowText 或直接用GetDlgItemText
2.给编辑框关联字符串变量 假如叫m_sEdit 用的时候先UpdateData();m_sEdit的内容就是编辑框里的内容了
3.  给编辑框关联控件变量 假如叫m_cEdit 用m_cEdit.GetWindowText 也可以
4.SendMessage发WM_GETTEXT/WM_SETTEXT消息获取/设置控件的内容

二、句柄

1、自身窗口句柄可用AfxGetMainWnd获取。  2、系统中其他APP的窗口句柄可用FindWindow获取(用SPY帮一下忙).     HWND hBtnClose;      HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");     if(hWnd)    {      hBtnClose=GetDlgItem(hWnd,2);      if(hBtnClose)      PostMessage(hBtnClose,BM_CLICK,NULL,NULL);    }

3、通过指针获取窗口句柄    HWND hwnd = pwnd->m_hwnd; //得到它的HWND 4、当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,

    最安全的方法是使用GetSafeHwnd()函数; 5、HWND GetDlgltem(HWND hDlg,int nlDDlgltem); 6、通过控件ID号获取。     CListCtrl*     pleftList   =   (CListCtrl*   )GetDlgItem(IDC_LIST1);

三、自定义消息步骤:

(一)先在头文件中定义自己消息的ID,如 #define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)
(二)再声明自己的消息处理函数:afx_msg void OnMyFirstMessage();
(三)在CPP文件中添加消息映射宏:
在BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP代码块中添加消息映射宏ON_MESSAGE,(建议添加到//}}后面)如下:
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
ON_MESSAGE(WM_MY_FIRST_MESSAGE, OnMyFirstMessage)
END_MESSAGE_MAP()
(四)最后定义消息处理函数:
OnMyFirstMessage()
{
// TODO: 在此添加控件通知处理程序代码
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值