上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
摘要: 在一个WIN32程序中,WINDOWS会将消息传递给相应的窗口。但是消息不是立即就被传递给相应的窗口,而是会从整个程序最顶层的窗口传递到下一级窗口,再传递到下一级窗口,直到传递给目标窗口。在整个过程中,有些消息,在某些特定的情况下,无法默认传递到目标窗口的。比如用户在EDIT控件中按下回车键,CANCEL键等,如果EDIT窗口之前有对话框窗口,对话框会默认处理回车消息(即响应ONOK函数,然后关闭对话框),然后退出消息传递。所以EDIT会收不到。要解决这个问题,可以在EDIT窗口之前所有的对话框中重载PreTranslateMessage函数,然后在函数内加上:if (pMsg->mes 阅读全文
posted @ 2013-10-30 13:29 陳さん様 阅读(1376) 评论(0) 推荐(0)
摘要: 1. 前言 本文用于介绍TCP/IP协议的最基本内容,十分简单,也十分基本,如果希望了解详细的内容,请参阅其它资料,这只是给初学者用的。 2. TCP/IP介绍 TCP/IP通常指的是关于TCP和IP的任何东西,它是一个统称,它既可以包括其它协议,其它应用程序,还可以包括网络介质。 2.1 基本结构 这个结构存在于Internet中计算机之中,它决定了计算机在网络上的动作。 2.2 名词 数据块的名称会因为它处于不同的协议栈而不同。这里给出一个总结:在以太网时,它称为一个以太网帧,在IP上时,它称为IP包,如果数据在IP和UPD之间一般称为UDP数据报,而数据如果在IP和TCP之间,则称为TC 阅读全文
posted @ 2013-10-30 13:27 陳さん様 阅读(210) 评论(0) 推荐(0)
摘要: ComboBox是比较常用的一个控件,有三种样式:CBS_SIMPLE(简单),CBS_DROPDOWN(下拉),CBS_DROPDOWNLIST(下拉列表),其中下拉列表样式是不允许输入的,简单样式是永远都显示下拉框的。ComboBox是由一个ListBox和一个Edit框组合而成。本文将以限制只能输入电话号码为例介绍子类化过程得到Edit框(类似的可以得到ListBox)。电话号码只能有数字和“-”和“+”组成,经查ASCII表,知道对应的ASCII值为48-57及45和43共12个值。好,闲话暂停,开始子类化之旅。第一步 先建立一个MFC应用程序工程,取名叫UseSuperCombox. 阅读全文
posted @ 2013-10-30 11:20 陳さん様 阅读(467) 评论(0) 推荐(0)
摘要: MFC所提供的组件已经可以完成很多功能了,但有时候我们还需要这些控件按我们自己的意图去处理。比如EDIT控件,虽然我们可以设置EDIT控件为只能接受数字属性,但如果我们还需要它可以接收数字意外的字符,比如需要控件只能接收"2004-02-20"这样的格式的日期字符呢?我们需要自己在WM_CHAR消息里面来处理输入的字符。可是,当输入字符后,Windows会向Edit控件发送WM_CHAR消息,应用程序会调用Windows默认的Edit控件窗口处理函数WndProc来处理该控件。这时我们需要通过子类化将该窗口对象与自己的Edit类连接起来,这样,该类的的消息处理函数会替代原来 阅读全文
posted @ 2013-10-30 10:09 陳さん様 阅读(233) 评论(0) 推荐(0)
摘要: windows样式有很多种,不同的windows,windows控件接受不同的样式。如Combo box接受下以样式:WS_CHILD AlwaysWS_VISIBLE UsuallyWS_DISABLED RarelyWS_VSCROLL To add vertical scrolling for the list box in the combo boxWS_HSCROLL To add horizontal scrolling for the list box in the combo boxWS_GROUP To group controlsWS_TABSTOP To include 阅读全文
posted @ 2013-10-29 17:50 陳さん様 阅读(392) 评论(0) 推荐(0)
摘要: Q 如何处理ComboBox中的回车键?避免退出程序? A 在一般的EDIT中采用的方法是处理PretranlateMessage(),执行代码 CWnd *pWnd = GetFocus(); if(pWnd != NULL){ if(pWnd == GetDlgItem(IDC_EDIT1) { ...//IDC_EDIT1具有焦点 }}但在ComboBox中好象不同,是ComboBox的编辑控件得到了焦点,所以判断代码:BOOL CDlg::PreTranslateMessage(MSG *pMsg){ if(pMsg->message==WM_KEYDOWN && 阅读全文
posted @ 2013-10-29 17:36 陳さん様 阅读(166) 评论(0) 推荐(0)
摘要: VC中的消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。 控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。 她类似于命令消息,当用户与控件窗口交互时,那么控件通知消息就会从控件窗口发送到它的主窗口。但是这种消息的存在并不是为了处理用户命令,而是为了让主窗口能够改变控件,例如加载、显示数据。例如按下一个按钮,他向父窗口发送的消. 阅读全文
posted @ 2013-10-29 17:34 陳さん様 阅读(242) 评论(0) 推荐(0)
摘要: 函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。函数原型:HDC CreateCompatibleDC(HDC hdc);参数:hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NULL。 CreateCompatibleDc函数只适用于支持光栅操作的设备,应用程序可以通过调用GetDeviceCaps函数来确定一个设备是否支持这些操作。当不再需要内存设备上下文环境时,可调用DeleteDc函数删除它。 用双缓冲的话还要再定义一个位图对象 阅读全文
posted @ 2013-10-29 16:55 陳さん様 阅读(178) 评论(0) 推荐(0)
摘要: #include //头文件LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数声明char szClassName[]="windowclass"; //窗口结构体的名称char szAppTitle[]="使用API创建窗口"; //窗口的标题int PASCAL WinMain(HINSTANCE hInstance, ... 阅读全文
posted @ 2013-10-29 16:22 陳さん様 阅读(244) 评论(0) 推荐(0)
摘要: 在MFC中,对话框程序在完成程序的初始化后,就在程序主线程中,调用CWinThread::Run函数。在该函数中,首先调用API函数PeekMessage,而函数PeekMessage检查线程消息队列,如果消息存在,就将该消息放于指定的MSG结构中,以后的消息处理都将针对这一MSG结构对象。捕获消息后,该函数将捕获的消息进行预处理,然后再将消息传递给相应的窗口处理函数。 键盘消息被拦截而得不到正常响应,其中的关键就是Run函数对消息的预处理。在Run函数中,调用了函数CWinThread::PumpMessage,就是利用这一函数,MFC实现了对消息的分流,使得消息沿着MFC对各种消息规... 阅读全文
posted @ 2013-10-29 15:13 陳さん様 阅读(1914) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页