ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:21.48KB ,
资源ID:30017165      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30017165.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VC一些小细节.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VC一些小细节.docx

1、VC一些小细节VC一些小细节 1 vc+中 WM_QUERYENDSESSION WM_ENDSESSION 为系统xi tong关机消息xiao xi。2 在VC下执行zhi hangDOS命令ming ling a. system(md c:12); b. WinExec(Cmd.exe /C md c:12, SW_HIDE); c. ShellExecute ShellExecute(NULL,open,d:WINDOWSsystem32cmd.exe,/c md d:zzz,SW_SHOW); d. CreateProcess 下面这个示例的函数han shu可以把给定的DOS命令m

2、ing ling执行zhi hang一遍,并把DOS下的输出shu chu内容记录在 buffer中。同时示范了匿名管道重定向zhong ding xiang输出shu chu的用法: - BOOL CDOSDlg:ExecDosCmd() #define EXECDOSCMD dir c: /可以换成你的命令ming ling SECURITY_ATTRIBUTES sa; HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHand

3、le = TRUE; if (!CreatePipe(&hRead,&hWrite,&sa,0) return FALSE; char command1024; /长达1K的命令ming ling行ming ling hang,够用了吧 strcpy(command,Cmd.exe /C ); strcat(command,EXECDOSCMD); STARTUPINFO si; PROCESS_INFORMATION pi; si.cb = sizeof(STARTUPINFO); GetStartupInfo(&si); si.hStdError = hWr

4、ite; /把创建进程jin cheng的标准错误cuo wu输出shu chu重定向zhong ding xiang到管道输入shu ru si.hStdOutput = hWrite; /把创建进程jin cheng的标准输出shu chubiao zhun shu chu重定向zhong ding xiang到管道输入shu ru si.wShowWindow = SW_HIDE; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; /关键步骤,CreateProcess函数han shu参数can shu意义请查阅MSDN

5、 if (!CreateProcess(NULL, command,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi) CloseHandle(hWrite); CloseHandle(hRead); return FALSE; CloseHandle(hWrite); char buffer4096 = 0; /用4K的空间kong jian来存储输出shu chu的内容,只要不是显示xian shi文件wen jianxian shi wen jian内容,一般情况qing kuang下是够用了。 DWORD bytesRead; while (t

6、rue) if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) = NULL) break; /buffer中就是执行zhi hang的结果,可以保存到文本wen ben,也可以直接输出shu chu AfxMessageBox(buffer); /这里是弹出对话框dui hua kuang显示xian shi CloseHandle(hRead); return TRUE; -3删除shan chu目录,包含删除shan chu子文件wen jian夹以及其中的内容 - BOOL DeleteDirectory(char *DirName)/

7、如删除shan chu DeleteDirectory(c:aaa) CFileFind tempFind; char tempFileFindMAX_PATH; sprintf(tempFileFind,%s*.*,DirName); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); while(IsFinded) IsFinded=(BOOL)tempFind.FindNextFile(); if(!tempFind.IsDots() char foundFileNameMAX_PATH; strcpy(foundFileName,t

8、empFind.GetFileName().GetBuffer(MAX_PATH); if(tempFind.IsDirectory() char tempDirMAX_PATH; sprintf(tempDir,%s%s,DirName,foundFileName); DeleteDirectory(tempDir); else char tempFileNameMAX_PATH; sprintf(tempFileName,%s%s,DirName,foundFileName); DeleteFile(tempFileName); tempFind.Close(); if(!RemoveDi

9、rectory(DirName) MessageBox(0,删除shan chu目录失败!,警告信息xin xi,MB_OK);/比如没有找到文件wen jian夹,删除shan chu失败,可把此句删除shan chu return FALSE; return TRUE; -4让程序暂停zan tingcheng xu zan ting:system(PAUSE);5 在PreTranslateMessage中捕捉键盘jian pan事件shi jian if (pMsg->message=WM_KEYDOWN && pMsg->wParam=VK_RETURN)

10、return TRUE; /注意return的值6 更改按键消息xiao xi(下面的代码dai ma可把回车键消息xiao xi改为TAB键消息xiao xi) - BOOL CT3Dlg:PreTranslateMessage(MSG* pMsg) if(pMsg->message = WM_KEYDOWN && VK_RETURN = pMsg->wParam) pMsg->wParam = VK_TAB; return CDialog:PreTranslateMessage(pMsg); -7 MoveWindow: 一个可以移动、改变窗口chuang

11、 kou位置wei zhi和大小的函数han shu8 16进制转化成10进制小数的问题wen ti 用一个读二进制er jin zhi文件wen jianer jin zhi wen jian的软件ruan jian读文件wen jian 二进制er jin zhi文件wen jianer jin zhi wen jian中的一段 8F C2 F5 3C 最后变成了 0.03 请问这是怎么转换zhuan huan过来的? 方法fang fa一:浮点技术法,如 DWORD dw=0x3CF5C28F; float d=*(float*)&dw;/0.03;方法fang fa二:浮点的储

12、存方式和整数完全两样,你想了解的话可以去 看一看,不过通常我们都不必了解它就可以完成转换zhuan huan。char a4 = 0x8F, 0xC2, 0xF5, 0x3C;float f;memcpy(&f,a,sizeof(float); TRACE(%d,0x3CF5C28F);9 EDIT控件的EM_SETSEL,EM_REPLACESEL消息xiao xi10 在其它进程jin cheng中监视键盘jian pan消息xiao xi:用SetWindowsHookEx(WH_KEYBOARD_LL,.);13 在桌面zhuo mian上任意位置wei zhi写字 - HDC

13、 deskdc = :GetDC(0); CString stext = 我的桌面zhuo mian; :TextOut(deskdc,100,200,stext,stext.GetLength(); :ReleaseDC(0,deskdc); -14 HWND thread_hwnd=Findwindow(NULL,你要监控的进程jin cheng窗体chuang ti(用SPY看)), if (thread_hwndNULL) 。 else DWORD thread_id=GetWindowThreadProcessId(thread_hwnd,NULL)15 waveOutGetVolu

14、me()可以得到波形bo xing音量大小16 隐藏桌面zhuo mian图标tu biao并禁用右键you jian功能菜单cai dan: - HWND Hwd = :FindWindow(Progman, NULL); if (bShowed) :ShowWindow(Hwd, SW_HIDE); else :ShowWindow(Hwd, SW_SHOW); bShowed = !bShowed; -17 获得程序当前路径lu jing: - char ch256; GetModuleFileName(NULL,ch,255); for(int i=strlen(ch);i &

15、& chi!=;i-); chi=0; AfxMessageBox(ch); -18 KeyboardProc的lParam中包含着许多按键信息xin xi,其中第31位(从0开始)为0表示是按下按键,为1表示松开按键。 (lParam & 0x80000000)进行二进制er jin zhi与计算,效果是取第31位的值。 (lParam & 0x40000000)是取第30位,30位表示按键的上一个状态zhuang tai,为1表示之前键已经是按下的,0表示松开。 lParamin Specifies the repeat count, scan code, exte

16、nded-key flag, context code, previous key-state flag, and transition-state flag. For more information about the lParam parameter, see Keystroke Message Flags. This parameter can be one or more of the following values. 0-15Specifies the repeat count. The value is the number of times the keystroke is

17、repeated as a result of the users holding down the key.16-23Specifies the scan code. The value depends on the OEM.24Specifies whether the key is an extended key, such as a function key or a key on the numeric keypad. The value is 1 if the key is an extended key; otherwise, it is 0.25-28Reserved.29Sp

18、ecifies the context code. The value is 1 if the ALT key is down; otherwise, it is 0.30Specifies the previous key state. The value is 1 if the key is down before the message is sent; it is 0 if the key is up.31Specifies the transition state. The value is 0 if the key is being pressed and 1 if it is b

19、eing released.19 复制文件wen jian应该用到CopyFile或是CopyFileEx这两个API20 移动窗口chuang kou的位置wei zhi或改变大小:MoveWindow/SetWindowPos21 我的程序是当前运行yun hang的程序时,可以用setcursor()来设置she zhi光标guang biao的图标tu biao。 而且可以用setcapture()是鼠标shu biao移动到我得程序窗口chuang kou之外时也是我设置she zhi的图标tu biao 但是如果我得程序不是当前的运行yun hang程序的,鼠标shu biao就会

20、变会默认mo ren的。 怎样能够,使得不变回默认mo ren的,还是用我设置she zhi的光标guang biao? SetSystemCursor22 SendMessage函数han shu的几个用法: 控制kong zhi按钮按下的,是这么用的 SendMessage(n1, WM_COMMAND, MAKELPARAM(ID,BN_CLICKED),(LPARAM )n2);(n1,n2是句柄ju bing) 而得到文本wen ben内容,是这样用的, SendMessage(hWnd,WM_GETTEXT,10,(LPARAM)buf),23 处理一个单行EDIT的WM_CTLC

21、OLOR要同时响应xiang yingnCtlColor = CTLCOLOR_EDIT和CTLCOLOR_MSGBOX的两个情况qing kuang,参考can kao 24 设备发生改变处理函数han shu可在CWnd:OnDeviceChange中,捕获bu huoWMDEVICECHANGE事件shi jian不能区分诸如设备插入、拔下消息xiao xi。25 把字符zi fuabcn123存入文本wen ben文件wen jian中时,文件wen jian内容没看见换行huan hang,其实用word打开该文件wen jian是有换行huan hang的。另外用abcrn123代

22、替也可看见换行huan hang。26 :SetFocus(:GetDesktopWindow(); 或:BringWindowToTop(:GetDesktopWindow();:GetDesktopWindow()这里可获得桌面zhuo mian窗口chuang kou的句柄ju bing27 数组shu zu初始化chu shi hua: int a2434; /声明sheng ming数组shu zu memset(a,-1,24*34); /全部元素初始化chu shi hua成-1,但初始化chu shi hua成除0和-1以外的数值是不行的28 SHGetFileInfo函数ha

23、n shu可获得文件wen jian信息xin xi。29 创建一个控件: HWND hEdit=CreateWindow(EDIT,NULL,WS_CHILD|WS_VISIBLE |ES_LEFT,50,20,50,20,hwnd,NULL,hInst,NULL); /hwnd参数can shu为父窗口chuang kou句柄ju bing30 VC中对声音文件wen jian的操作: 31 调用tiao yong其它程序又要隐藏窗口chuang kou:用CreateProcess函数han shu调用tiao yonghan shu tiao yong,再拿到窗口chuang kou句

24、柄ju bing,然后:ShowWindow(hWnd,SW_HIDE);32 读取du qu文本wen ben文件wen jian中的一行:用CFile类的派生pai sheng类pai sheng lei:CStdioFile的方法fang fa:CStdioFile:ReadString33 删除shan chu非空文件wen jian夹: - SHFILEOPSTRUCT shfileop; shfileop.hwnd = NULL; shfileop.wFunc = FO_DELETE ; shfileop.fFlags = FOF_SILENT|FOF_NOCONFIRMATION

25、; shfileop.pFrom = c:temp; /要删除shan chu的文件wen jian夹 shfileop.pTo = ; shfileop.lpszProgressTitle = ; shfileop.fAnyOperationsAborted = TRUE; int nOK = SHFileOperation(&shfileop); -34 函数han shu前面加上:是什么意思?叫域运算yun suan符.在MFC中表示调用tiao yongAPI.或其它全局函数han shu.为了区分是 mfc函数han shu还是api详见: 35 CImageList的用法: 36 有关控件的一些常见问答: <=很不错的地方哦37 在多文档wen dang客户ke hu区中增加位图wei tu底图演示程序yan shi cheng xu: 我的对应工程:AddBackgroundBitmap38 用VC+6.0实现PC机与单片机dan pi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1