MFC中的一些小知识

1.如果要在某个目标图像控件中画图,需要以下代码:

CRect   RawRect[4]; // 定义一个矩形数组,因为这里要在四个图像控件中画图
//画原始图像

Cwnd *pwnd;

pwnd=GetDlgItem(IDC_PIC1);
pwnd->GetClientRect(RawRect[0]);  // 把第一个图像控件(IDC_PIC1)的坐标等信息保存在RawRect【0】这个对象中
pDC=pwnd->GetDC();  // 获取控件的DC,为画图做好准备

// 获得控件的指针还有DC之后,我们之后的画图起点不再是整个程序界面的左上角,而变成了控件的左上角

pDC->StretchBlt(0,0,rcWidth,rcHeight,&dcBmp,0,0,m_bmp.bmWidth,m_bmp.bmHeight,SRCCOPY); // 当我们调用这句话时,最左边的两个参数(0,0)将是我们控件左上角的那个点


m_RawPic[0].Draw(pDC->m_hDC,RawRect[0]); // m_hDC是DC类的成员变量,是DC的句柄   (这句代码在不同的程序中可能有不同的表达)


2.基于对话框的程序,默认有OnPaint函数

基于单文档的程序,没有Onpaint函数,也没OnDraw函数,但是我们可以在IDE中添加OnDraw函数,

一般的,如果想在单文档中画图,我们都要自己手动添加OnDraw函数,并在里面添加代码


3.基于CFormView的应用程序,执行时,希望自动全屏显示,只需把App类的InitInstance()函数中

m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();

改为

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
 m_pMainWnd->UpdateWindow();


你可能感兴趣的:(MFC中的一些小知识)