vc常见问题收集整理

上传人:第*** 文档编号:32700142 上传时间:2018-02-12 格式:DOC 页数:8 大小:41.50KB
返回 下载 相关 举报
vc常见问题收集整理_第1页
第1页 / 共8页
vc常见问题收集整理_第2页
第2页 / 共8页
vc常见问题收集整理_第3页
第3页 / 共8页
vc常见问题收集整理_第4页
第4页 / 共8页
vc常见问题收集整理_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《vc常见问题收集整理》由会员分享,可在线阅读,更多相关《vc常见问题收集整理(8页珍藏版)》请在金锄头文库上搜索。

1、转=vc 常见问题收集整理 1。 laiyiling(【陌生人 V2.0】) 收集整理 问】如何判定剪贴板中有没有文本数据? 答】 COleDataObject dataObject; dataObject.AttachClipboard(); if(dataObject.IsDataAvailable(CF_TEXT) ./有文本数据 问】如何得到 ComboBox 的 Edit 句柄? 答】CEdit *pEdit = (CEdit*)CComboBox.GetWindow(GW_CHILD) 问】得到当前用户目录,即:C:Documents and Settings. 答】SHGetSp

2、ecialFolderPath(NULL,(LPTSTR)szPath,CSIDL_PERSONAL,FALSE); 问】状态栏的高度怎样改变? 答】m_wndStatusBar.GetStatusBarCtrl().SetMinHeight(40); 问】动态调整控件大小时需要注意的问题 答】 程序在执行 WM_SIZE 时,可能控件还没有被程序创建完成,你必须确保你的控件被创建后才能使用 MoveWindow, 1,你可以设一个 BOOL 变量,初值为 FALSE,在 OnInitDialog 的最后将它的值变成 TRUE,在 WM_SIZE 中判断这个变量,只有当它为真时才进行 Move

3、Window 操作。 2,你也可经先用 :IsWindow(控件.GetSafeHwnd()判断控件是否创建,只有当它为真时才进行 MoveWindow 操作。 问】在 PreTranslateMessage()中如何取得组合键比如 CTRL+F1 答】if(pMsg-message =WM_KEYDOWN&pMsg-wParam=VK_F1 &GetKeyState(VK_CONTROL)&0x80) 问】SendMessage PostMessage 的区别 答】 PostMessage 发送消息后就不等了,发了就回,管你处不处里呢 SendMessage 发送消息后还要等消息被处理之后函

4、数才返回 更具体的解释可以看: http:/ 问】文档视图程序怎么使程序开始运行后不打开任何一个文档? 答】 MDI 在程序的 InitInstance 中的 ProcessShellCommand 函数之前加入: cmdInfo.m_nShellCommand = CCommandLineInfo:FileNothing SDI InitInstance 函数中关于 OnFileNew 的调用去掉 问】如何向一个按钮发送单击消息? 答】 SendMessage(WM_COMMAND,(WPARAM)BN_CLICKED)SetModifiedFlag(FALSE); /加入这句! CFram

5、eWnd:OnClose(); 问】如何得到其他应用程序的文本内容? 答】发送 WM_GETTEXT 消息,而不能直接用 GetWindowText 函数,如果是用SDK,直接把 CWnd 换为 HWND CWnd* pWnd = GetOtherAppWindow(); TCHAR buf512; pWnd-SendMessage(WM_GETTEXT,sizeof(buf)/sizeof(TCHAR),(LPARAM)(void*)buf); 看到这里肯定有人会问?为什么 GetWindowText 函数不行呢?GetWindowText函数不就是发送 WM_GETTEXT 消息吗?不是。

6、GetWindowText 函数只有在窗口属于当前进程的时候才会发送 WM_GETTEXT 消息。如果窗口属于不同的进程,GetWindowText 函数的行为是不一样的,MSDN 的文档说的很清楚: 如果目标窗口是属于其他进程的,并且窗口也有标题栏。GetWindowText 函数返回窗口的标题。如果窗口没有标题栏则返回 NULL。微软一开始就是这么设计GetWindowText 函数的。也就是说我们用 GetWindowText 函数只能得到其他进程窗口的标题,而不能得到其他进程窗口里子窗口的文本内容,如:编辑矿、组合框。 问】如何获知某进程打开了哪些文件? 答】http:/ 问】如何用

7、CMyListCtrl(即自定义控件) 取代 CListView 中的控件? 答】I made a custom control derived from CWnd, and now I want to use it as a view. My first solution was to embed the control into the view and handle OnSize in the view to position the control over the client area. The problem is that mouse messages go to the co

8、ntrol and cannot be overridden in the view. The keystroke messages go to the view and must be manually forwarded to the control. I read about CCtrlView as a base class for common controls. Ive even managed to write the view around it (I believe that you wrote about this in an issue of MSJ), but I co

9、uld not get it to work with my CWnd-based control. Can this be done, and how? 更多信息参见 http:/ 问】谁能讲讲如何实现 API 钩子? 答】My motivation for writing this article was the need for a really simple hooking framework, that will offer an easy to use interface and ability to capture different APIs. It intends to re

10、veal some of the tricks that can help you to write your own spying system. It suggests a single solution how to build a set for hooking Win32 API functions on NT/2K as well as 98/Me (shortly named in the article 9x) family Windows. For the sake of simplicity I decided not to add a support for UNICOD

11、E. However, with some minor modifications of the code you could easily accomplish this task. For more infomation please read the following article,更多信息参见 http:/ 问】/ 激活当前屏幕保护程序可以发送如下消息 答】PostMessage(WM_SYSCOMMAND,SC_SCREENSAVE,0); 问】怎样得到屏幕的 DC? 答】CDC *dc=CDC:FromHandle(:GetDC(NULL); 问】如何在状态栏里显示汉字? 答】

12、 m_wndStatusBar.SetPaneText(nPane, sMsg); nPane 是格子的序号,从 0 开始 sMsg 是显示的内容 问】TabCtrl 响应双击关闭 答】可以用 SetWindowLong 设置上 CS_DBLCLKS 属性 问】取得桌面的地址 答】char szPath1000; SHGetSpecialFolderPath(this-GetSafeHwnd(),szPath,CSIDL_DESKTOP,false); 问】如何编程修改系统文件的显示属性? 答】直接修改注册表可以。 HKCUSoftwareMicrosoftWindowsCurrentVers

13、ionExplorerAdvanced 值 Hidden, 当这个值为 2 时,是“不显示隐藏的文件和文件夹” 当这个值为 1 时,是“显示所有文件和文件夹” 问】如何判断一个是否正被使用? 答】 HANDLE hf = CreateFile(cName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); if(hf=INVALID_HANDLE_VALUE) messageBox(该文件正在被使用,请关闭部分程序在试); return; CloseHandle(hf); 问】调试命令行参数程序时怎么输入参数? 答】 Project | Seeting | Debug Program arguments 中输入你的参数 问】关于组合框的属性 答】 如果组合框具有不可输入只能下拉选择属性(DROPLIST),则直接关联的成

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号