windows编程
Hi_Aaron
do
读书工作生活
while(1)
展开
-
获取设备环境句柄
获取和释放设备环境句柄最常用的是在处理 WM_PAINT 消息时使用 BeginPaint 函数和 EndPaint 函数: hdc = BeginPaint ( hwnd, &ps ) ; [ other program lines ] EndPaint ( hwnd, &ps) ; MSDN中对以上两个函数的解释为:原创 2013-01-29 20:49:20 · 3073 阅读 · 0 评论 -
格式化的消息框(MessageBoxPrintf 函数)
该函数能像 printf 那样接收各种各样大量的参数并对它们进行格式化。源代码:#include#include#includeint CDECL MessageBoxPrintf(TCHAR * szCaption, TCHAR * szFormat, ...){ TCHAR szBuffer[1024]; va_list pArgList; //The va_start原创 2013-06-16 15:51:00 · 3809 阅读 · 2 评论 -
UpdateData(TRUE)和UpdateData(FALSE)的区别
当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)。 1、UpdateData(true); 用窗体上控件中的内容来更新和控件相关连的变量的值(只能更新value类型的变量)转载 2013-04-10 16:09:48 · 1984 阅读 · 0 评论 -
对话框
对话框包括模态对话框和非模态对话框模态对话框创建之后要用 DoModal ( )函数显示,用EndDialog( )函数关闭,例如:CTestDlg dlg ;dlg.DoMal ( ) ;非模态对话框用 CDialog::Create(...) 函数创建,例如:CTestDlg dlg;dlg.Create( IDD_DIALOG1, this );dlg.ShowW原创 2013-02-28 17:17:14 · 1204 阅读 · 0 评论 -
菜单
菜单项对同一个函数的响应顺序:View类--->Doc类---->MainFram类---->App类当一个消息到来的时候,先交到 MainFrame类,然后 MainFrame 类把它交给 View 类处理,接着 View 类看看自己的函数中有没有对该消息的响应函数,如果有则响应该函数,如果没有则交给 Doc 类处理,Do c类看看自己有没有对该消息的响应函数,如果没有就把改消息命令返还原创 2013-02-26 00:26:58 · 645 阅读 · 0 评论 -
矩形与区域的剪裁——CLOVER程序
CLOVER 程序由四个椭圆形成一个区域,然后把这个区域选入设备环境,接着从窗口的客户区中心发散绘制一系列直线。这些直线仅出现在剪裁区域内。源代码:#include #include #define TWO_PI (2.0 * 3.14159)LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;原创 2013-02-13 11:10:15 · 1381 阅读 · 1 评论 -
利用Windows空闲时间绘制随机大小和颜色的矩形
Windows 有很多的 “ 空闲时间 ”,在这期间所有的消息队列都是空的,Windows 就在等待键盘或者鼠标的输入。 那么能否在空闲期间从某种程度上获取控制并绘制随机矩形,而一旦有消息加载到程序的消息队列,就释放控制呢?这正是 PeekMessage 函数的 ” 用武之地 “PeekMessageThe PeekMessage function dispatches incom原创 2013-02-12 22:38:23 · 1214 阅读 · 0 评论 -
绘制填充区域
下表列出了 Windows 用于绘制带有边框的填充区域的 7 个函数:函数名称图形Rectangle直角矩形Ellipse椭圆RoundRect圆角矩形Chord 一个弓形Pie椭圆上的一个扇形Polygon多边形PolyPolygon原创 2013-02-11 20:50:10 · 1482 阅读 · 0 评论 -
绘制贝塞尔样条曲线
一条二维贝塞尔曲线样条曲线使用四个点定义:两个端点和两个控点。两个端点表示曲线的起点和终点。控点就好像 “磁铁” 一样把曲线从两个端点的直线处吸弯。两个端点是固定的,两个控点可以改变,按住鼠标左键并拖动鼠标就可以改变第一个控点,按住右键并拖动鼠标就可以改变第二个控点。下面是MSDN中贝塞尔样条曲线的定义:PolyBezierThe PolyBezier function dra原创 2013-02-07 22:04:25 · 4503 阅读 · 0 评论 -
边框绘制函数
#includeLRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){static TCHAR szAppName[] = TE原创 2013-02-07 19:50:22 · 1189 阅读 · 0 评论 -
创建、选择和删除画笔
尽管使用备用对象中的画笔非常方便,但只能使用实心的黑色画笔、实心的白色画笔或者是没有画笔三种情况。如果想获得更丰富的效果,则必须创建自己的画笔。 创建画笔的一般过程为:调用 CreatePen 或者 CreatePenIndirect 函数创建一个 “ 逻辑画笔 ”,这些函数会返回逻辑画笔的句柄。然后需要调用 SelectObject 函数将画笔选入设备环境中。接着就可以用使用这个新的原创 2013-02-10 12:47:38 · 3626 阅读 · 0 评论 -
绘制正弦函数曲线
#include#include#define NUM 1000#define TWOPI (2*3.14159)LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain( HINSTANCE hInstance, // handle to current ins原创 2013-02-06 10:22:33 · 2756 阅读 · 0 评论 -
使用 Windows 现有画笔
画笔决定了线条的颜色、宽度和样式,样式可以是实线、点线或者虚线。画笔的默认设备环境是 BLACK_PEN 。该画笔会绘制一条宽度为1个像素的黑色线条。BLACK_PEN 是 Windows 提供的三种 ”备用画笔“ ( stock pen )的一种。另外两种分别是 WHITE_PEN 和 NULL_PEN 。NULL_PEN 表示不绘制任何图形的画笔。你也可以创建自己的画笔。原创 2013-02-10 11:37:14 · 2643 阅读 · 0 评论 -
保存设备环境
保存设备环境: 通常,当调用 GetDC 或者 BeginPaint 函数时,Windows返回一个设备环境,它的所有属性都被设定为默认值。当设备环境调用 ReleaseDC 或者 EndPaint 函数时,对属性所做的任何改变都会丢失。如果程序需要使用非默认的设备环境属性,则必须在每次获取一个新的设备环境句柄时初始化这个设备环境: case WM_PAINT原创 2013-02-02 22:39:01 · 1245 阅读 · 0 评论 -
一个简单的基于UDP字符界面的聊天应用程序(C/C++)
编写一个简单的基于字符界面的聊天应用程序 基于聊天的应用程序软件通常用会采用基于UDP的应用协议来实现,因为UDP不需要建立连接,而且没有数据确认和数据重传的机制,所以实时性较高。在聊天时即使丢失一些数据也不会影响信息的交流,我们可以通过上下文语义知道对方所要表达的意思,或者根据对方的信息重新发送我们要说的话;对于TCP来说,在通讯前要经过三次握手协议建立连接,而建立连接的过程往原创 2013-04-24 21:25:44 · 5989 阅读 · 3 评论