·为什么有Flags & FBOTTOMBAR作为判断的条件啊
发表在C语言图书答疑 2009-09-09
是否精华
版块置顶:
if(Flags & FBOTTOMBAR)
{
DeleteObject(LeftLine);
LeftLine.LoadBitmap(IDB_BOTTOMBAR);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
OldObj = memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
bLineHeight = m_BorderHeight + m_FrameHeight;
bLineHeight = bLineHeight>y? bLineHeight:y;
WindowDC.StretchBlt(leftlinewidth,FactRC.Height()-bLineHeight,m_RTitleRc.right
-rLineWidth-leftlinewidth, bLineHeight,&memDC,0,0,x,y,SRCCOPY);
memDC.SelectObject(OldObj);
LeftLine.Detach();
} VC++项目全程开发实录这本书的 第一个案例
51页 
谢谢   
 是 DrawDialog(UINT Flags)中的
分享到:
精彩评论 1
学分: LV1
2009-09-09
沙发
首先说明作用,因为要对对话框进行绘制,所以这一步是代表要进行绘制底边的判断条件。

再解决‘&’的问题:
& 在这里代表的是 位与运算。举个例子:
00 & 11 =00
01 & 11 =01
10 & 11 =10
11 & 11 =11
这就是位与运算 的方式。

由于FBOTTOMBAR 在头文件中 用宏 是它代表的是32。那么它的二进制就是:100000
(Flags & FBOTTOMBAR)
就代表如果Flags的第六位是1(与FBOTTOMBAR相同,或者那一位是1) &运算得到的结果就是才会是真值。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照