VC常用操作源码总结

上传人:20****03 文档编号:174285097 上传时间:2021-03-15 格式:DOC 页数:47 大小:183KB
返回 下载 相关 举报
VC常用操作源码总结_第1页
第1页 / 共47页
VC常用操作源码总结_第2页
第2页 / 共47页
VC常用操作源码总结_第3页
第3页 / 共47页
VC常用操作源码总结_第4页
第4页 / 共47页
VC常用操作源码总结_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《VC常用操作源码总结》由会员分享,可在线阅读,更多相关《VC常用操作源码总结(47页珍藏版)》请在金锄头文库上搜索。

1、目录CD-ROM1关闭计算机1重启计算机1枚举所有字体1只运行一个程序实例2得到鼠标位置2显示和隐藏程序菜单2获取可执行文件的图标3窗口自动靠边程序演示3系统菜单添加菜单项5动态增加或删除菜单6改变应用程序的图标7改变窗口标题的方法7剪切板上通过增强元文件拷贝图像数据8剪切板上文本数据的传送8捕捉屏幕图像到剪切板中9将位图缩放显示11改变对话框中控件的颜色12修改窗口外观14获得应用程序主窗口的指针14确定应用程序的路径14获得其他程序的图标15获得各种目录信息15如何自定义消息16改变窗口的缺省风格16将窗口居中显示16一启动就最大化和最小化17限制窗口的大小17创建一个字回绕的CEditV

2、iew17程序保持极小状态18移动窗口18重置窗口的大小18单击窗口标题栏以外区域使窗口移动18改变视窗的背景颜色19防止主框窗口在其说明中显示活动的文档名20获取有关窗口正在处理的当前消息的信息20代码中获取工具条和状态条的指针21使能和禁止工具条的工具提示21如何创建一个不规则形状的窗口21获取应用程序的实例句柄24如何编程结束应用程序24创建和使用无模式对话框24怎样加载其他的应用程序25使窗口始终在最前方26在对话框中显示一个位图27获取一个对话控件的指针27改变控件的字体27OLE控件中使用OLE_COLOR数据类型28在不使用通用文件打开对话的情况下如何显示一个文件列表28旋转按钮

3、控件29用位图显示下压按钮29创建三态下压按钮30如何动态创建控件30限制编辑框中的准许字符30向列表框中添加多个项时防止闪烁31向编辑控件中添加文本32访问预定义的GDI对象32获取GDI对象的属性信息33实现一个橡皮区矩形34更新翻转背景颜色的文本35创建一个具有特定点大小的字体36如何计算一个串的大小36显示旋转文本37显示包含标签字符的串38串太长时如何在其末尾显示一个省略号39为什么即使调用EnableMenuItem菜单项后,菜单项还处于禁止状态39在用户环境中如何确定系统显示元素的颜色40查询和设置系统参数40确定当前屏幕分辨率40使用预定义Windows光标41检索原先的Tas

4、k Manager应用程序使用的任务列表41确定Windows和Windows系统目录42在哪儿创建临文件42我怎样才能建立一个等待光标43访问桌面窗口43怎样用COLORREF44在应用程序中循环浏览已经打开的文档、视图44MFC在窗口标题栏45CD-ROM 打开:mciSendString(Set cdAudio door open wait,NULL,0,NULL); 关闭:mciSendString(Set cdAudio door closed wait,NULL,0,NULL); 关闭计算机 OSVERSIONINFO OsVersionInfo; /包含操作系统版本信息的数据结构

5、 OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&OsVersionInfo); /获取操作系统版本信息 if(OsVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS) /Windows98,调用ExitWindowsEx()函数重新启动计算机 DWORD dwReserved; ExitWindowsEx(EWX_REBOOT,dwReserved); /可以改变第一个参数,实现注销用户、 /关机、关闭电源等操作 / 退出前的一些处理程序

6、重启计算机 typedef int (CALLBACK *SHUTDOWNDLG)(int); /显示关机对话框函数的指针 HINSTANCE hInst = LoadLibrary(shell32.dll); /装入shell32.dll SHUTDOWNDLG ShutDownDialog; /指向shell32.dll库中显示关机对话框函数的指针 if(hInst != NULL) /获得函数的地址并调用之 ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60); (*ShutDownDialog)(0); 枚举所有字体

7、 LOGFONT lf; lf.lfCharSet = DEFAULT_CHARSET; / Initialize the LOGFONT structure strcpy(lf.lfFaceName,); CClientDC dc (this); / Enumerate the font families :EnumFontFamiliesEx(HDC) dc,&lf, (FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0); /枚举函数 int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf, LPNEWTE

8、XTMETRIC lpntm,DWORD nFontType,long lparam) / Create a pointer to the dialog window CDay7Dlg* pWnd = (CDay7Dlg*) lparam; / add the font name to the list box pWnd -m_ctlFontList.AddString(lpelf -elfLogFont.lfFaceName); / Return 1 to continue font enumeration return 1; 其中m_ctlFontList是一个列表控件变量只运行一个程序实

9、例 if( FindWindow(NULL,程序标题) exit(0);或CreateMutx:HANDLE m_hMutex = :CreateMutex(NULL,true,_T(MBD); if(GetLastError() = ERROR_ALREADY_EXISTS) ReleaseMutex(m_hMutex); :MessageBox(NULL,_T(应用程序已经运行!),_T(系统提示),MB_OK|MB_ICONSTOP); return FALSE; 也可以用CreateThread,方法同CreateMutex得到鼠标位置 CPoint pt; GetCursorPos(

10、&pt); /得到位置 显示和隐藏程序菜单CWnd *pWnd=AfxGetMainWnd(); if(b_m) /隐藏菜单 pWnd-SetMenu(NULL); pWnd-DrawMenuBar(); b_m=false; else CMenu menu; menu.LoadMenu(IDR_MAINFRAME); /显示菜单 也可改变菜单项 pWnd-SetMenu(&menu); pWnd-DrawMenuBar(); b_m=true; menu.Detach(); 获取可执行文件的图标HICON hIcon=:ExtractIcon(AfxGetInstanceHandle(),_

11、T(NotePad.exe),0); if (hIcon &hIcon!=(HICON)-1) pDC-DrawIcon(10,10,hIcon); DestroyIcon(hIcon); 窗口自动靠边程序演示 BOOL AdjustPos(CRect* lpRect) /自动靠边 int iSX=GetSystemMetrics(SM_CXFULLSCREEN); int iSY=GetSystemMetrics(SM_CYFULLSCREEN); RECT rWorkArea; BOOL bResult = SystemParametersInfo(SPI_GETWORKAREA, siz

12、eof(RECT), &rWorkAre a, 0); CRect rcWA; if(!bResult) /如果调用不成功就利用GetSystemMetrics获取屏幕面积 rcWA=CRect(0,0,iSX,iSY); else rcWA=rWorkArea; int iX=lpRect-left; int iY=lpRect-top; if(iX SetWindowPos(NULL,rcWA.left,iY,0,0,SWP_NOSIZE); lpRect-OffsetRect(rcWA.left-iX,0); AdjustPos(lpRect); return TRUE; if(iY S

13、etWindowPos(NULL ,iX,rcWA.top,0,0,SWP_NOSIZE); lpRect-OffsetRect(0,rcWA.top-iY); AdjustPos(lpRect); return TRUE; if(iX + lpRect-Width() rcWA.right - DETASTEP & iX !=rcWA.right-lpRect-W idth() /调整右 /pWnd-SetWindowPos(NULL ,rcWA.right-rcW.Width(),iY,0,0,SWP_NOSIZE); lpRect-OffsetRect(rcWA.right-lpRect-right,0); AdjustPos(lpRect); return TRUE; if(iY + lpRect-Height() rcWA.bottom - DETASTEP & iY !=rcWA.bottom-lpRect -Height() /调整下 /pWnd-SetWindowPos(NULL ,iX,rcWA.bottom-rcW.Height(),0,0,SWP_NOSIZE); lpRect-OffsetRect(0,rcWA.bottom-lpRect-bottom); return TRUE; retu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

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