﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-程序人生-文章分类-MFC</title><link>http://www.cppblog.com/liu1061/category/5789.html</link><description>生活和工作都要充满激情,否则你无法体会到淋漓尽致的快乐与痛苦</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 02:58:44 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 02:58:44 GMT</pubDate><ttl>60</ttl><item><title>MFC中关于控件变量的使用！</title><link>http://www.cppblog.com/liu1061/articles/38470.html</link><dc:creator>T.S Liu</dc:creator><author>T.S Liu</author><pubDate>Thu, 13 Dec 2007 16:31:00 GMT</pubDate><guid>http://www.cppblog.com/liu1061/articles/38470.html</guid><wfw:comment>http://www.cppblog.com/liu1061/comments/38470.html</wfw:comment><comments>http://www.cppblog.com/liu1061/articles/38470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/liu1061/comments/commentRss/38470.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/liu1061/services/trackbacks/38470.html</trackback:ping><description><![CDATA[<p>在MFC中我们常常要把一些变量于控件对应起来！ 并通过UpdateDate来实调用DoDataExchange(CDataExchange* pDX)实现变量信息交换！<br><br>如：<br>DDX_Text(pDX, IDC_STATICCOUNT, m_sCount); --&gt; value对应<br><br>把控件ID为IDC_STATICCOUNT的控件与m_sCount变量对应起，<br>用UpdateDate(TRUE)来把IDC_STATICCOUNT控件数据写到m_sCount; <br>用UpdateDate(FALSE)把m_sCount数据读写到IDC_STATICCOUNT控件; <br><br>DDX_Control(pDX, IDC_BSTARTTIME, m_cStartTime);有尽有--&gt;control<br><br>把控件ID为IDC_BSTARTTIME的控件与m_sCount变量对应起，如BUTTON。<br>此时我们可以通过m_cStartTime控件变量改变对应控件状态！<br>m_cStartTime.EnableWindow(FALSE); 可以改变控件是否可用！如果没有control对应，<br>那么我们可以使用等价语句：GetDlgItem(IDC_BSTARTTIME)-&gt;EnableWindow(TRUE);<br><br>所以使用控件变量将很大的方便我们写P!<br><br>2 关于mouse按键的判断<br>当我们在开发程式的时候，都要有个交互的过程，那么这里一要用的mouse，然而我们如何发现个健被按下呢！</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">void&nbsp;CMouseDlg::OnMouseMove(UINT&nbsp;nFlags,&nbsp;CPoint&nbsp;point)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">&nbsp;TODO:&nbsp;在此添加消息处理程序代码和</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">或调用默认值<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(nFlags&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;MK_LBUTTON)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CDialog::OnMouseMove(nFlags,&nbsp;point);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<p>些是我们可以通过nFlag来断定那个健被按下！<br>nFlag是一个UINT的变量，它的每一个bit都代表一定的意思！<br>MK_CONTROL&nbsp;&nbsp;&nbsp; Set if the CTRL key is down.<br>MK_LBUTTON&nbsp;&nbsp;&nbsp;&nbsp; Set if the left mouse button is down<br>MK_MBUTTON&nbsp;&nbsp;&nbsp; Set if the middle mouse button is down<br>MK_RBUTTON&nbsp;&nbsp;&nbsp; Set if the right mouse button is down<br>MK_SHIFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Set if the SHIFT key is down. <br>我们只要用nFlag &amp; MK_KEYBUTTON, 如果非0这个健就被按下了， 我们不作<br>if ((nFlag &amp; MK_KEYBUTTON)&nbsp; == MK_KEYBUTTON), 这样可以使其更加的简捷！实际上用&amp;标记来简化if语句，这样可以置位，可以得到一个正值，否则是0<br><br>还有一点要注意，在onKeyDown中，WM_KEYDOWN事件只经你传递大写字母，而shift,caps loc是通过分开代码健被传，如果要区分大小写，你必须判断其是否被按下！<br></p>
<p>&nbsp;</p>
<p><br>&nbsp;</p>
<img src ="http://www.cppblog.com/liu1061/aggbug/38470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/liu1061/" target="_blank">T.S Liu</a> 2007-12-14 00:31 <a href="http://www.cppblog.com/liu1061/articles/38470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>