大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说句柄类(句柄名称是什么意思),希望您对编程的造诣更进一步.
资源ID(如文本框控件ID:IDC_textbox)、句柄(如窗口句柄HWND)、对象指针(如编辑框类指针CEdit* edit1)的概念、使用场景和相互转换:
资源的数据保存到内存后,需要通过一个物理地址或虚拟地址被访问到,这个地址的外在表现形式可以是ID、对象指针、或作为特殊结构体指针的句柄。
例1:
void Sys::OnButton48() { CString str;str = "控件句柄与指针:\n"; str += "1 pWnd->GetSafeHwnd();\n"; CWnd * pWnd = GetDlgItem(IDC_textbox); if (pWnd) { HWND hWnd = pWnd->GetSafeHwnd(); rdc4.Attach(hWnd); //CRichEditCtrl rdc4; rdc4.SetWindowText(str); } rdc4.Detach(); str+="2 CWnd *p = CWnd::FromHandle(hWnd2);\n"; HWND hWnd2=::GetDlgItem(m_hWnd, IDC_textbox); CWnd *p = CWnd::FromHandle(hWnd2); p->SetWindowText(str); }
上述按钮单击事件在富编辑框中输入:
控件句柄与指针: 1 pWnd->GetSafeHwnd(); 2 CWnd *p = CWnd::FromHandle(hWnd2);
例2:
void Sys::OnButton47Attach() { CString str; str = "通过函数建立控件窗口和变量的关联:\n"; str += "1 rdc1.SubclassDlgItem(IDC_textbox,this);\n"; rdc1.SubclassDlgItem(IDC_textbox,this); //CRichEditCtrl rdc1; rdc1.SetWindowText(str); rdc1.UnsubclassWindow(); str += "2 rdc2.SubclassWimdow(hrdc);\n"; HWND hrdc; GetDlgItem(IDC_textbox,&hrdc); rdc2.SubclassWindow(hrdc); rdc2.SetWindowText(str); rdc2.UnsubclassWindow(); str += "3 rdc2.Attach(hrdc);\n"; HWND hrdc2; GetDlgItem(IDC_textbox,&hrdc2); rdc3.Attach(hrdc); rdc3.SetWindowText(str); rdc3.Detach(); }
上述按钮单击事件在富编辑框中输入:
通过函数建立控件窗口和变量的关联: 1 rdc1.SubclassDlgItem(IDC_textbox,this); 2 rdc2.SubclassWimdow(hrdc); 3 rdc2.Attach(hrdc);
-End-
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/29861.html