现在位置: 首页 > windows_API
    在SDK,进行windows程序设计(不使用mfc),使用这些控件,要进行一些必要的初试化,否则如果在对话框上画这些控件,对话框就不能正常显示     先说Rich Edit控件,这个是个特例。 如果往对话框里添加了一个Rich Edit控件,然后运行程序.理应弹出对话框,但是没有弹出. 如果把Rich Edit 控件去掉,再运行.对话框就可以弹出。 如果在mfc下进行开发,那么只要程序启动的时候添加AfxInitRic...
阅读全文
2012-08-14 23:19 工业·编程 ⁄ 共 693字 暂无评论
CDC是Windows绘图设备的基类 CClientDC: (1)(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDC CPaintDC: (1)用于响应窗口重绘消息(WM_PAINT)是的绘图输出。 (2)CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队...
阅读全文
PreSubclassWindow PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。 其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。 如果用户直接创建定制控件窗口,CWnd...
阅读全文
2012-08-14 23:12 工业·编程 ⁄ 共 3898字 暂无评论
我们经常在一些软件中看到类似的功能:鼠标移动到一个按钮(或其他控件)上的时候,自动弹出一些提示(不是弹出对话框),以提醒用户该控件的作用或注意事项。这种提示就是所说的Tooltip(如图1所示)。关于Tooltip,网上已经有很多资料了,我在这里只是给大家提供一些链接,让没有做过的朋友能在最短的时间内实现这个功能。 图1 Codeproject已经有许多现成的Tooltip类,并且有的功能非常之强,可以直接拿来用,这会为你节省...
阅读全文
    GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。     GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。     ClientToScreen把客户区坐标系下的REC...
阅读全文
2012-08-13 06:13 工业·编程 ⁄ 共 871字 暂无评论
用Sleep函数延时,如何时间太长,程序就像无响应一样,采用消息泵可以解决这个问题 5秒延时 COleDateTime odtStart = COleDateTime::GetCurrentTime(); COleDateTimeSpan odtsEnd = COleDateTime::GetCurrentTime()-odtStart; while(5>=odtsEnd.GetTotalSeconds()) { MSG msg; GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg); odtsEnd = COleDateTime::GetCurrentTime()-odtStart; } A...
阅读全文
2012-08-13 06:09 工业·编程 ⁄ 共 935字 暂无评论
一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL); AfxMessageBox(buf); 2 获取应用程序数据路径的文件夹 TCHAR bufApplicateData[_MAX_PATH]; SHGetSpecialFolderPath(NULL,bufApplicateData,CSIDL_APPDATA,NULL); AfxMessageBox(bufApplicateData); 3 获取系统文件夹 TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL,buf,CSIDL_...
阅读全文
2012-08-13 06:00 工业·编程 ⁄ 共 3682字 暂无评论
    有时候需要获得窗口矩形的大小和客户区矩形的大小二者的值,故需要分别调用GetWindowRect和GetClientRect。如果只需要获得客户区矩形的大小,调用GetClientRect就行了。 GetWindowRect函数 函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect); 在Visual Studio 2005中,函数原型为void GetWi...
阅读全文
2012-08-13 05:57 工业·编程 ⁄ 共 753字 暂无评论
char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiByte. char转TCHAR 如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写: char strUsr[10] = "Hello"; TCHAR Name[100]; #ifdef UNICODE     MultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100); #else     strcpy(Name, strUsr); #endif ...
阅读全文
2012-08-12 06:55 工业·编程 ⁄ 共 2862字 暂无评论
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码.  MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的...
阅读全文