本文主要是介绍VS2010画图用到的一些函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.void CxxxDlg::OnPaint()
{
if (IsIconic()) {
CPaintDC dc(this); // device context for painting
……//自动生成的程序
dc.DrawIcon(x, y, m_hIcon);
}
else {
……//添加自己的内容
CDialog::OnPaint();
}
IsIconic()作用是判断窗口是否处于最小化状态(点击了最小化按钮之后)。
原因是,if (IsIconic()) 这段代码是在OnPaint()函数内,当你最小化了对话框之后,虽然IsIconic()的值是TRUE,但是OnPaint()函数并不会运行。因为OnPaint()响应的是WM_PAINT消息,而WM_PAINT消息是针对客户区的。一个最小化了的窗口不需要重绘客户区。
为了验证这一点,可以设置一定时器,在OnTimer()函数里写上
if(IsIconic()) MessageBeep(MB_OK);
当你点击最小化按钮后,你会听见嘟嘟声。
那么这段代码究竟有什么用?它是不是永远不会被执行呢?当然不是。举两个例子。
第一,如果你强行发送WM_PAINT消息,它会执行。
第二,特殊的对话框。比如一个ToolBox风格的对话框。这个对话框不显示在任务栏,在最小化之后它会变成一个很小的一条显示在桌面上。这时如果它被遮挡,就会出发WM_PAINT消息,从而执行那段代码。
其中IsIconic()分支代码的作用是当窗口处于最小化状态时进行图标的绘制操作。但是实际上你会发现,在窗口最小化一般来说是不会进行窗口的重绘,也就是不会触发WM_PAINT消息。当然,用户可以强制进行重绘。正常情况下,在RegisterClass时我们一般会为wc设置一个图标Icon。如果注册窗口类的时候为窗口类设置了图标,那么当窗口最小化的时候,系统会绘制此图标;如果注册窗口类的时候我们没有为窗口类设置图标,那么当窗口最小话Minimized的时候,系统会发一个WM_PAINT消息通知窗口过程进行窗口最小化的绘制操作。
2.GetClientRect(rc);//获取窗口客户区范围
3.MoveWindow()改变指定窗口的位置和大小
4.x/y坐标方向:
5.MoveTo()
CPoint MoveTo(int x,int y ); CPoint MoveTo(POINT point //Specifies the new position. You can pass either a POINT structure or a CPoint object for this parameter. );
6.Mid()
Midshi从一个字符串中截取出指定数量的字符。
CString add = "abcdef";
MessageBox(add.Mid(1,3));//bcd
MessageBox(add.Mid(0,3));//abc
MessageBox(add.Mid(0,4));//abcd
7.GetCurrentBrush()
获得当前选择的CBrush对象的指针
//定义设备上下文对象指针
CDC * pDC;
//获得当前选择的刷子的指针
CBrush* pbrush=pDC->GetCurrentBrush();
8.SelectObjec()
该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
9.Polygon()
这篇关于VS2010画图用到的一些函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!