- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 WM_VSCROLL/WM_HSCROLL
WM_VSCROLL nScrollCode = (int) LOWORD(wParam); // scroll bar value nPos = (short int) HIWORD(wParam); // scroll box position hwndScrollBar = (HWND) lParam; // handle to scroll bar 告诉我们用户对滚
2007-08-13 20:33:00 2992
翻译 Image list
Image ListsImage List 是同样大小的图片集合,每个图片通过索引引用。Image Lists 被用来高效管理大量图标和位图。在Image List中的所有图片被包含 单个,宽位图以screen device 格式。一个Image list同样可以包含单色位图,这些位图中包含掩码,被用来透明的绘画图片(icon style)。Using Image ListsImage L
2007-08-13 19:59:00 4345
原创 Toolbar笔记
对照源代码以下是部分解释,打字太累……^_^Toolbar(window containing buttons or other controls)创建Toolbar1.CreateToolbarEx(...,LPCTBBUTTON,iNumButton,...) 需要一个TBBUTTON结构数组, 其中TBBUTTON结构表示Toolbar上的每个按钮! 而按钮又是窗口,又有style
2007-08-13 19:57:00 1168
原创 滚动条处理笔记
提示:看看原代码会明白下面所说的!原代码处理滚动条时的问题:有了WS_VSCROLL后会出现滚动条,但是无法滚动,还没有键盘接口,也没有初始化滚动块的大小等等我们要做的事情是:1.要处理滚动消息2.移动滚动块到鼠标指定的位置3.并更新客户区的内容滚动消息:WM_VSCROLL nScrollCode = (int) LOWORD(wParam); // scroll bar value n
2007-08-13 19:20:00 835
原创 WM_CLOSE,WM_DESTROY接受顺序
WM_CLOSE 先于WM_DESTROY收到 case WM_CLOSE: PostQuitMessage (0) ; break; case WM_DESTROY: MessageBox(NULL,TEXT("123"),TEXT("123"),0);这样的话,Message
2007-08-11 17:33:00 1325
原创 WM_PAINT
WM_PAINT hdc = (HDC) wParam; // the device context to draw in当调用UpdateWindow, RedrawWindow时,系统通过WM_PAINT来告诉我们哪个窗口需要绘画,画在那里(hdc)我们的处理(Message Cracker):void cls_OnPaint(HWND hwnd)...{ //do..
2007-08-11 17:06:00 757
原创 WM_COMMAND
WM_COMMAND wNotifyCode = HIWORD(wParam); // notification code wID = LOWORD(wParam); // item, control, or accelerator identifier hwndCtl = (HWND) lParam; // handle of control WM_COMM
2007-08-11 16:26:00 1063
原创 简单全屏程序
代码下载知识准备:WS_POPUP:不显示窗口客户区,只显示在任务栏上,不见窗口,右击任务栏上的窗口也没有系统菜单WS_SYSMENU:负责是否显示右击时的菜单WS_MAXIMIZEBOX:最大化按钮WS_MINIMIZEBOX:最大化按钮MoveWindow和SetWindowPos的区别:当从全屏回来时,如果使用SetWindowPos,那么原来被程序覆盖的部分不会更新!相同:同样可以改变
2007-08-11 14:36:00 841
原创 为你的程序加上加速键
1.添加加速键资源2. hAccel =LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_ACCEL));3.修改消息循环以便处理加速键信息 while (GetMessage (&msg, NULL, 0, 0)) ...{ if(!TranslateAccelerator(hwnd,hAccel,&msg))
2007-08-11 12:32:00 618
原创 WM_CREATE
WM_CREATE lpcs = (LPCREATESTRUCT) lParam; // structure with creation data typedef struct tagCREATESTRUCT ...{ // cs LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu
2007-08-11 11:33:00 759
原创 Win32 common control(Statusbar)
common control 发送notification 到父窗口,当事件发生时。这是通用控件的设计方法!common control也是窗口,也就有window class,也能使用一般的窗口函数处理他们。一些发送WM_COMMAND消息给父窗口,一些但是使用WM_NOTIFY来通知父窗口代码如://子控件发送WM_COMMAND,而在父窗口处理函数中处理他们,为什么他们不给自己的
2007-08-04 17:18:00 1430
原创 Subclassing 笔记
window class中最重要的是他的lpfnWndProc,他处理由该类别产生的窗口的所有信息。在RegisterClassEx返回之前,系统配置一块内存来记录这个类别的相关信息,包括lpfnWndProc的值.注意是系统完成的!!! 每当我们的程序用这个类别产生新的窗口,系统又会配置有新的窗口的内存块,用来存放与窗口相关的信息.其中也包括窗口处理函数WndProc的地址,而他
2007-08-04 06:46:00 711
原创 修改一个工作空间中的工程文件目录结构
如果有两个工程,Test1 Test2,那么默认目录结构的是Test1.dswTest1.dsp---| Test2/Test2.dsp这个结构不太清晰,用过vc7或更高的朋友知道,他们的目录结构是Test1.dsw---| Test1/Test1.dsp Test2/T
2007-08-03 19:18:00 646
原创 c/c++混合编程
最近有人问起C/C++混合编程的问题,google了一些资料放这里==================================================http://www.gbunix.com/htmldata/2004_12/14/20/article_828_1.html如果C++程序要调用已经被编译后的C函数,该怎么办?假设某个C函数的声明如下:void foo(int
2007-08-03 10:21:00 1015
翻译 在WinSock上使用IOCP
在WinSock上使用IOCP - - 在WinSock上使用IOCP 在WinSock上使用IOCP 本文章假设你已
2007-08-02 19:31:00 896
翻译 Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion Ports翻译一
原文http://msdn.microsoft.com/msdnmag/issues/1000/Winsock/Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion PortsSUMMARY 写一个网络应用程序不难,但是写一个稳定的程序就是一个挑战。Overlapped I/O using completion po
2007-08-02 17:20:00 1119
原创 变量作用域1
代码块作用域#include stdio.h>int main()......{ int main_scop=0; for(int i=0;i2;i++) ......{ int for_scop=1; } for_scop +=1; //for_scop : undeclared identifier printf("for_scop : %d ",for_scop); retu
2007-08-02 12:46:00 565
原创 变量作用域3
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////作用域和
2007-08-02 12:41:00 536
原创 变量作用域2
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////到这里解
2007-08-02 12:37:00 542
原创 size_t类型
c规定sizeof 返回 size_t类型,其实他不是一个新类型,他与可移植类型(如int32_t)相同,他是根据标准类型定义的.使用的是typedeftypedef unsigned int size_t而对于他的占位符是%u或%lu或更先进%zd _t说明是通用类型
2007-08-02 10:11:00 798
原创 chm乱码解决方法
打字太累了,不过我还是尽力讲清楚!英文版的chm文件中,有些乱码是因为ie的编码不对,只要右击有乱码的那页选"查看原代码",并另存为".html"的网页, 再用ie打开,右击ie,在"编码"中选"西欧" 方法2 打开AppLocal,在程序的路径选择才c:/WINDOWS/hh.exe(我的机器是这样的),在参数中选择你要打开的CHM文件的Full-path(路径+文件名),下一步,
2007-08-02 08:32:00 2235
原创 how to enumerate subkey names under an arbitrary key
#include #include #include #include VOID PrintSubKeyNames(HKEY hkey){ //取得最长subkey的长度,不是字节数,是字符个数 DWORD dwMaxSubkeyLen; RegQueryInfoKey(hkey,NULL,NULL,NULL,NULL,&dwMaxSubkeyLen,NULL,NULL,NULL,NULL
2007-08-01 11:25:00 491
原创 对话框2
对话框是窗口,那么窗口背后一定有一个窗口类,而这个类的名称是#32770现在有这种情况:如果应用程序是基于对话框的,那么一定还要很多对话框,而我又想改变对话框的类,可是牵一发而动全身,所有的对话框都变了,那么要修改默认的对话框类名#32770,如何做呢?想想在注册类时可以给出类名,但那是我自己设计的类阿,而对话框类是M$设计的阿,麻烦!且慢,M$也一定用RegisteClassEx来注册的,那
2007-08-01 08:41:00 726
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人