⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_23590.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:23590 发表者:傻子315 发表日期:2002-12-05 11:17:32
<br>主题:菜鸟问题
<br>内容:我按书上的例子作一个程序,程序的功能是通过点击BOTTON按钮来加载一幅图片到PICTURE控件中,其中PICTURE控件ID是IDC_PCITURE,并在对话框相关头文件中定义了 <BR>CBitmap Bitmap;和函数Bitmap.LoadBitmap(IDE_BITMAP1);现在的问题出在BUTTON按钮的消息函数中用了这样一个代码: <BR>(CStatic*)GetDlgItem(IDC_PICTURE))-&gt;SetBitmap(HBITMAP(Bitmap)); <BR>对于这行代码我理解了很久,我现在大致的理解是: <BR>1。HBITMAP(Bitmap)的作用是将Bitmap对象转换成一个位图句柄作为SetBitmap()函数的实参,(不知道能不能这样理解) <BR>2函数SetBitmap()的作用是将一个位图加载到控件中,而且他是一个CStatic类的成员函数,(不知道理解的对不对) <BR>3。GetDlgItem()函数的作用得到一个控件的句柄,这里是得到picture控件的句柄, <BR>4,现在关键是对这一句的理解((CStatic*)GetDlgItem(IDC_PICTURE)),我想这一句的最终结果一定是得到一个指向CStatic类的指针,但是GetDlgItem()函数得到的是一个控件的句柄,在前面加一个 (CStatic*)的意思是将他转换成一个指针,将一个句柄转换成一个指针???咳我实在是有些胡涂~,请高手指点。 <BR><BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:未出手的飞刀 回复日期:2002-12-05 11:21:03
<br>内容:<BR>GetDlgItem()是 CWnd::GetDlgItem(),<BR>返回是CWnd*
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:lwx 回复日期:2002-12-05 11:24:18
<br>内容:你说的GetDlgItem()函数很可能cWnd类的成员函数他的原型是CWnd*GetDlgItem( int nID ) const;<BR>应该返回的正好是一个CWnd窗口类的指针,这里得到是的IDC_PICTUR控件的指针了,这样最终得到一个CStatic类的指针就顺理成章了<BR><BR><BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无非 回复日期:2002-12-05 11:26:55
<br>内容:API的GetDlgItem()才返回的是句柄。<BR>你调用的是CWnd::GetDlgItem(),返回的是CWnd*,然后强制转换成CStatic *
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -