windows编程技术文章
hnhyhongmingjiang
这个作者很懒,什么都没留下…
展开
-
WM_COMMAND,WM_NOTIFY等消息
子窗体和父窗体:子窗体被触发时,向父窗体发送一个WM_COMMAND消息,父窗体的窗口函数处理这个消息,进行相关的处理。lParam表示子窗口句柄,LOWORD(wParam)表示子窗口ID,HIWORD (wParam)表示通知码(例如单击,双击,SETFOCUS等)。WM_MESSAGE、WM_COMMAND、WM_NOTIFY等消息有什么不同? WM_MESSAGE是最普通的原创 2008-02-28 17:19:00 · 8835 阅读 · 1 评论 -
CRC校验码
用到CRC校验码,做个笔记循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。 注意: 根据原创 2008-09-02 14:42:00 · 4020 阅读 · 0 评论 -
Win32下两种用于C++的线程同步类
线程同步是多线程程序设计的核心内容,它的目的是正确处理多线程并发时的各种问题,例如线程的等待、多个线程访问同一数据时的互斥,防死锁等。Win32提供多种内核对象和手段用于线程同步,如互斥量、信号量、事件、临界区等。所不同的是,互斥量、信号量、事件都是Windows的内核对象,当程序对这些对象进行控制时会自动转换到核心态,而临界区本身不是内核对象,它是工作在用户态的。我们知道从用户态转换到核心态是转载 2008-08-29 17:57:00 · 879 阅读 · 0 评论 -
WIN32用户界面设计之Dialog 篇
对话框分为模态对话框和非模态对话框,创建模态对话框用DialogBox(),创建非模态对话框用CreateDialog(),一个对话框通常都应当有一个父窗口,对话框的定位以父窗口的坐标系统为基准,父窗口关闭对话框也随即关闭。如果模态对话框没有父窗口就不再具有模态对话框的特性(用户必须处理完模态对话框的要求之后才能继续在主窗口的操作)。例如使用MessageBox(NULL,"Message","转载 2008-08-29 17:54:00 · 1903 阅读 · 0 评论 -
笔记:线程与GDI的冲突:死机的真正原因
很多人使用线程的时候,都喜欢在线程内画图。如果在线程内画图,程序就很容易出错,而且还是那种没有任何响应和提示的错误问题.例如,一个复制文件的程序,这个程序由两个线程组成,一个是复制文件的线程,一个是显示文件复制进度的线程。理论上这个程序没有什么问题。但是,这个程序有一个很大的隐患,就是主程序也可能某一时刻要更新这个进度条,例如,进度窗口被其他窗口挡住后或窗体,这个窗体就要刷新,这时,如果线程的那个原创 2008-08-29 18:04:00 · 1519 阅读 · 0 评论 -
笔记 :定义二维数组
定义二维数组char array[x][y]; 1.只定义个一维的就可以了 char *array; array = new char[x*y]; 访问的时候*(array+i*y+j)表示array[i][j] 2.定义一个二维数组 char **array1原创 2008-08-26 18:30:00 · 1005 阅读 · 0 评论 -
笔记:把界面上静态文本控件的尺寸根据文本的内容自动调整大小
函数功能:该函数计算指定的正文字符串的高度和宽度。 函数原型:BOOL GetTextExtentPoint32(HDC hdc, LPCTSTR lpString, int cbString, LPSIZE lpSize); 参数:hdc:设备环境句柄。 lpString:指向正文字符串的指针。此字符串不必以/0结束,因为cbString指定了字符串的长度。 cbStri原创 2008-08-27 16:09:00 · 1855 阅读 · 1 评论 -
ON_COMMAND_RANGE用法
ON_COMMAND_RANGE用法 afx_msg void OnOutPutStatusButtonUp (WPARAM wParam, LPARAM lParam);BEGIN_MESSAGE_MAP(CIOStatue, CDialog)//{{AFX_MSG_MAP(CIOStatue)//}}AFX_MSG_MAPON_COMMAND_RANGE(IDC_STATIC_原创 2008-08-26 14:22:00 · 1927 阅读 · 0 评论 -
WIN32窗口子类化
理论:如果你曾经在 Windows 环境下编过程序,有时候就会发现:有一个现成的窗口,几乎有你所需要的全部功能,但还不完全一样(否则就没有必要讲这一节了)。你曾遇到过这样的处境吗,如果你需要一个具有过滤特殊字符功能的 Edit 控件。当然最直接的方法就是自己用代码来实现,但这的确是一个费时又很困难的任务,而窗口子类化就可以用来做这种事情。 窗口子类化允许你接管被子类化的窗口,使你对转载 2008-03-06 15:54:00 · 2296 阅读 · 0 评论 -
GetWindowLong函数(最好的解释资料,绝对值得一看,此函数在子类化技巧时候经常用到)
今天在看一个代码里头写了GetWindowLong (hwnd, 0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第2个参数为0是指什么,MD,很恼火,最近终于在一个国外网站找到,我在这篇文章贴了,网站是http://www.codeguru.com/forum/archive/index.php/t-243778.html先收集所有关于此函数的使用方法以及程序代码原创 2008-03-06 16:24:00 · 51370 阅读 · 21 评论 -
有关WINDOWS编程中涉及到菜单的使用技巧(精心收藏)
问】怎样把某项菜单置灰?答】1menu.EnableMenuItem(ID_VIEW_MYCONTROL_BAR, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);2用OnUpdataCommandUI( CCmdUI* pCmdUI) pCmdUI->Enable( FALSE );------问】如何动态改变菜单?答】1CMenu cMenu;//调用新的以ID原创 2008-02-29 20:14:00 · 1230 阅读 · 0 评论 -
MFC的框架如何隐藏输入法
MFC的框架如何隐藏输入法 InputPanel = FindWindow(TEXT("SipWndClass"), NULL); SipButton = FindWindow(TEXT("MS_SIPBUTTON"), NULL); TaskBar = FindWindow(TEXT("HHTaskBar"), NULL); 够用了吧,哈哈^^.原创 2008-03-01 14:35:00 · 1214 阅读 · 0 评论 -
显示原理理解 DEVMODE理解
今天查找DEVMODE结构的时候找到一篇不错的文章,特转过来:显示器所显示的内容对应于显存,在显示器上最小的单位是象素(Pixel,这里仅考虑逻辑象素),显存的最小的单位是位(Bits)。 显示器工作的特征主要体现在色彩数和分辨率两方面。显示器所显示的色彩的数目取决于单位象素所使用的显存的位数(Bits)。在显存中,如果8位显存(即一个向象素使用了一字节的显存)对应于显示器上的一个象素,那么显转载 2008-03-01 11:12:00 · 6645 阅读 · 1 评论 -
CListCtrl使用技巧
由于CListCtrl良好的数据展示形式和便捷的操作,所以我们在编程工作中会经常用到,网上找到一片不错的总结,估计对于一般的使用场景够用的。还有其他需求,我们可以再探索讨论。以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每翻译 2008-09-18 13:58:00 · 1460 阅读 · 1 评论