云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > VC常用操作源码汇总

VC常用操作源码汇总

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 13:50:06

{

(mainmenu->GetSubMenu (0))->DeleteMenu(i,MF_BYPOSITION); break; }

改变应用程序的图标

静态更改: 修改图标资源IDR_MAINFRAME。它有两个图标,一个是16*16的,另一个是3 2*32的,注意要一起修改。

动态更改: 向主窗口发送WM_SETICON消息.代码如下: HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON); ASSERT(hIcon);

AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);

改变窗口标题的方法

使用语句 CWnd* m_pCWnd = AfxGetMainWnd( ),然后,再以如下形式调用SetWindowTe xt()函数:

SetWindowText( *m_pCWnd,(LPCTSTR)m_WindowText);// m_WindowText可以是一个CSt ring类的变量。

如果需要经常修改窗口的标题(注:控件也是窗口),应该考虑使用半文档化的函数AfxSetWindowText。该函数在AFXPRIV.H中说明,在WINUTIL.CPP中实现,在联机帮助中找不到它,它在AFXPRIV.H中半文档化, 在以后发行的MFC中将文档化。 AfxSetWindowText的实现如下:

voik AFXAPI AfxSetWindowText (HWND hWndCtrl , LPCTSTR IpszNew ) {

itn nNewLen= Istrlen (Ipaznew) TCHAR szOld [256]

//fast check to see if text really changes (reduces flash in the controls )

if (nNewLen >_contof (szOld)

|| : : GetWindowText (hWndCrtl, szOld , _countof (szOld) !=nNewLen || Istrcmp (szOld , IpszNew)! = 0 {

7

//change it

: : SetWindowText(hWndCtrl , IpszNew ) } }

剪切板上通过增强元文件拷贝图像数据

下面代码拷贝通过元文件拷贝图像数据到任何应用程序,其可以放置在CView派生类的函 数中。

CMetaFileDC * m_pMetaDC = new CMetaFileDC();

m_pMetaDC->CreateEnhanced(GetDC(),NULL,NULL,\ //draw meta file

//do what ever you want to do: bitmaps, lines, text... //close meta file dc and prepare for clipboard;

HENHMETAFILE hMF = m_pMetaDC->CloseEnhanced(); //copy to clipboard OpenClipboard(); EmptyClipboard();

::SetClipboardData(CF_ENHMETAFILE,hMF); CloseClipboard(); //DeleteMetaFile(hMF); delete m_pMetaDC;

剪切板上文本数据的传送

把文本放置到剪接板上: CString source; //put your text in source if(OpenClipboard()) {

HGLOBAL clipbuffer; char * buffer; EmptyClipboard();

clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1); buffer = (char*)GlobalLock(clipbuffer); strcpy(buffer, LPCSTR(source));

8

GlobalUnlock(clipbuffer);

SetClipboardData(CF_TEXT,clipbuffer); CloseClipboard(); }

从剪接板上获取文本: char * buffer; if(OpenClipboard()) {

buffer = (char*)GetClipboardData(CF_TEXT); //do something with buffer here //before it goes out of scope }

CloseClipboard();

捕捉屏幕图像到剪切板中

void CShowBmpInDlgDlg::OnCutScreen() {

ShowWindow(SW_HIDE);

RECT r_bmp={0,0,::GetSystemMetrics(SM_CXSCREEN),

::GetSystemMetrics(SM_CYSCREEN)}; HBITMAP hBitmap;

hBitmap=CopyScreenToBitmap(&r_bmp); //hWnd为程序窗口句柄 if (OpenClipboard()) {

EmptyClipboard();

SetClipboardData(CF_BITMAP, hBitmap); CloseClipboard(); }

ShowWindow(SW_SHOW); }

HBITMAP CShowBmpInDlgDlg::CopyScreenToBitmap(LPRECT lpRect) {

//lpRect 代表选定区域

9

{

HDC hScrDC, hMemDC; // 屏幕和内存设备描述表 HBITMAP hBitmap, hOldBitmap; // 位图句柄 int nX, nY, nX2, nY2; // 选定区域坐标 int nWidth, nHeight; // 位图宽度和高度 int xScrn, yScrn; // 屏幕分辨率

// 确保选定区域不为空矩形 if (IsRectEmpty(lpRect)) return NULL;

//为屏幕创建设备描述表

hScrDC = CreateDC(\ //为屏幕设备描述表创建兼容的内存设备描述表 hMemDC = CreateCompatibleDC(hScrDC); // 获得选定区域坐标 nX = lpRect->left; nY = lpRect->top; nX2 = lpRect->right; nY2 = lpRect->bottom; // 获得屏幕分辨率

xScrn = GetDeviceCaps(hScrDC, HORZRES); yScrn = GetDeviceCaps(hScrDC, VERTRES); //确保选定区域是可见的 if (nX<0) nX = 0; if (nY<0) nY = 0; if (nX2>xScrn) nX2 = xScrn; if (nY2>yScrn)

10

搜索更多关于: VC常用操作源码汇总 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

{ (mainmenu->GetSubMenu (0))->DeleteMenu(i,MF_BYPOSITION); break; } 改变应用程序的图标 静态更改: 修改图标资源IDR_MAINFRAME。它有两个图标,一个是16*16的,另一个是3 2*32的,注意要一起修改。 动态更改: 向主窗口发送WM_SETICON消息.代码如下: HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON); ASSERT(hIcon); AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon); 改变窗口标题的方法 使用语句 CWnd* m_pCWnd = AfxGetMainWn

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com