句柄类(句柄名称是什么意思)

句柄类(句柄名称是什么意思)

资源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

(0)
上一篇 2023-09-21 15:30
下一篇 2023-09-21 17:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注