-
区分BITMAP、CBitmap和HBITMAP
①BITMAP
BITMAP是一个结构体,封装着bitmap的一些信息。定义了逻辑位图的宽高、颜色格式和位值。
②CBitmap
CBitmap是MFC中封装bitmap的类,包含着被位图的属性和对位图的操作。
③HBITMAP
HBITMAP是bitmap的句柄,也就是bitmap资源的标识。
④三者的联系
通过CBitmap类的attach操作,可以将代表Windows资源的HBITMAP对象关联到CBitmap对象;
通过CBitmap类的GetBitmap操作,可以得到CBitmap对象中封装的bitmap成员;
通过CBitmap类的GetSafeHandle操作,可以得到CBitmap对象所关联的代表Windows资源的HBITMAP对象。 -
在控件上绘图
可以在对话框资源中放置图片控件,并对其类型属性选Frame。可在对话框的绘图消息响应函数OnPaint或其他函数中,用CWnd类的函数GetDlgItem:CWnd* GetDlgItem( int nID ) const;来获得图片控件的窗口对象,再用函数GetDC:CDC* GetDC( );由窗口对象得到DC,然后就可以用该DC在控件中画图。
CWnd *pWin = GetDlgItem(IDC_HUESAT);
CDC *pDC = pWin->GetDC();
pDC->SetPixel(i, j, RGB(r, g, b));
在非Frame类静态控件上绘图,必须先按顺序依次调用CWnd类的Invalidate和UpdateWindow函数后,再开始用DC画图。如在一个ID为IDC_COLOR的按钮上绘图:
CWnd* pWnd = GetDlgItem(IDC_COLOR);
CDC* pDC = pWnd->GetD
MFC对话框编程杂谈
最新推荐文章于 2025-01-22 22:29:02 发布