VC中一个条件判断

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:15:51
在一个简单的画图程序中,添加了一个响应鼠标移动的消息响应函数如下,
void CMouseDlg::OnMouseMove(UINT nFlags, CPoint point)
{
if((nFlags&MK_LBUTTON)==MK_LBUTTON)
{

CClientDC dc(this);

dc.SetPixel (point.x,point.y ,RGB(255,0,0));

HPEN hPen=::CreatePen (PS_SOLID,1,RGB(255,0,0));

HPEN hOldPen=(HPEN)::SelectObject (dc,hPen);

dc.MoveTo (Pre_pointX,Pre_pointY);

dc.LineTo (point.x,point.y );

::SelectObject(dc,hOldPen);

::DeleteObject (hPen);

Pre_pointX=point.x;

Pre_pointY=point.y;

}

CDialog::OnMouseMove(nFlags, point);
}
请问条件判断if((nFlags & MK_LBUTTON)==MK_LBUTTON)是什么意思,它是怎么判断的?还有请教一个问题,MFC中一个类中有这么多的成员函数,总觉得知道得太少,使得在编程的时候想实现一个功能,但又不知道有没有函数可以实现,自己写常常是想得头痛最后写出个错的,请问有什么方法可以知道更多的成员函数和相的功能呢?初学MFC,还请多指教,谢谢!

MK_LBUTTON 只是一个宏定义,你可以在msdn中查到它对应的数值。这里就是说nflags与上mk_lbutton等于mk_lbutton的话。与操作你会的话就行了。
至于那么多的成员函数,你想要找的话,直接在msdn中试着拼写着找,比如说你想设置一个窗口的标题,你就可以想下英文应该怎么说,这时你可以在里面打在setwindowtext就可以查到了。还有创建窗口,换成英语就行了,createwindow一种语感去找

((nFlags & MK_LBUTTON)==MK_LBUTTON)楼上的已经解释过了 我就不再解释 真的想学好MFC你得看看深入浅出MFC 它深入的讲解了MFC的内部原理与运行机制 看了之后 你会有一种恍然大悟的感觉 对宏 消息映射都会有深刻的理解 可以看懂MFC中的任何一行代码

就是nFlags是不是其中有些位同MK_LBUTTON里面1的位一样。

MFC还需多用啊

Flags是标志位 MK_LBUTTON是鼠标左键被按下 if((nFlags & MK_LBUTTON)==MK_LBUTTON)的意思就是:如果在当前标志鼠标左键被按下就.......