MFC 编辑框中获取选中文字的信息!!

MFC 编辑框中获取选中文字的信息!!,第1张

先给编辑框指定变量,调用变量就可以调用编辑框里面的内容了。

在ClassWizard里面转到MemberVariables,选上编辑框的ID后,点击右边Add Variables,输入名称就可以指定变量。以后调用该变量就行了。。

获得编辑框的代码如下:

UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。

UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。

代码 大概就是这样 有几个关键函数仔细一下,要是要完整代码呢留言

CDC memDC;

CBitmap memBitmap,pOldBitmap;

CWindowDC dc(GetDesktopWindow());

memDCCreateCompatibleDC(&dc);

int nWidth,nHeight;

/ nWidth=GetSystemMetrics(SM_CXSCREEN);

nHeight=GetSystemMetrics(SM_CYSCREEN);/

CRect rect;

GetDesktopWindow()->GetWindowRect(rect);

ClientToScreen(&rect);

nWidth=rectWidth();

nHeight=rectHeight();

memBitmapCreateCompatibleBitmap(&dc,nWidth,nHeight);

pOldBitmap=memDCSelectObject(&memBitmap);

// memDCStretchBlt(0,0,rectWidth(),rectHeight(),&dc,0,0,rectWidth(),rectHeight(),SRCCOPY);

memDCBitBlt(0,0,nWidth,nHeight,&dc,0,0,SRCCOPY);

BITMAPFILEHEADER BMFhead;

BITMAPINFOHEADER BMIhead;

BMFheadbfReserved1=0;

BMFheadbfReserved2=0;

BMFheadbfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);

BMFheadbfSize=BMFheadbfOffBits+nWidthnHeight4;

BMFheadbfType=0x4d42;

BMIheadbiBitCount=32;

BMIheadbiClrImportant=0;

BMIheadbiClrUsed=0;

BMIheadbiSizeImage=0;

BMIheadbiXPelsPerMeter=0;

BMIheadbiYPelsPerMeter=0;

BMIheadbiCompression=BI_RGB;

BMIheadbiHeight=nHeight;

BMIheadbiPlanes=1;

BMIheadbiSize=sizeof(BITMAPINFOHEADER);

BMIheadbiWidth=nWidth;

DWORD dwSize=nWidthnHeight4;

BYTE pData=new BYTE[dwSize];

GetDIBits(memDCm_hDC,(HBITMAP)memBitmapm_hObject,0,nHeight,pData,(LPBITMAPINFO)&BMIhead,DIB_RGB_COLORS);

CFile file;

fileOpen("testbmp",CFile::modeCreate | CFile::modeWrite);

fileWrite(&BMFhead,sizeof(BITMAPFILEHEADER));

fileWrite(&BMIhead,sizeof(BITMAPINFOHEADER));

fileWrite(pData,dwSize);

fileClose();

memDCSelectObject(pOldBitmap);

MessageBox("绘图完毕");

GetParent()->ShowWindow(SW_SHOW);

有现成的ScreenToClient函数,你可以百度搜一下。

例:

void CTest25Dlg::OnButton1()

{

CRect r(0,0,100,100);

CPoint pt(0,0);

ScreenToClient(&r);

ScreenToClient(&pt);

}

执行下面的两行后,r,pt的值变成了相对对话框左上角的值

用了while(1)当然卡死了,建议任何情况下都不要用直接while(1),否则会占慢一个CPU核心,如果实在需要while(1),那么务必在里面加上一句Sleep让它休息“一会儿”,这个休息时间对人来说可能看不出区别,但是对电脑来说则是大大降低了负载。

建议在内部while(1)加Sleep(10);也就是10毫秒执行一次

MSDN上有一个方法,可以取得这些信息。具体如下:

这是MFC中的调用方式:

HDC hdc=GetDC(NULL); //获得屏幕设备描述表句柄

int ScrWidth=GetDeviceCaps(hdc,HORZRES); //获取屏幕水平分辨率

int ScrHeight=GetDeviceCaps(hdc,VERTRES); //获取屏幕垂直分辨率

ReleaseDC(NULL,hdc); //释放屏幕设备描述表

接下来就不用我说了吧,取得,设置,变化时再取得在设置。

先给编辑框指定变量,调用变量就可以调用编辑框里面的内容了。

在ClassWizard里面转到MemberVariables,选上编辑框的ID后,点击右边Add Variables,输入名称就可以指定变量。以后调用该变量就行了。。

获得编辑框的代码如下:

UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。

UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。

mfc不同电脑大小不同屏幕大小不一样,分辨率一样。根据查询相关公开信息,mfc程序界面由多个子窗口组成,屏幕大小不一样,分辨率一样显示不全,先是在屏幕长度较小,宽度较大的电脑上制作的对话框。只需要获取当前屏幕的分辨率,再将程序的宽和高设置为其分辨率的倍数即可。但是这里需要注意的是,需要写一个resize函数使得控件大小随客户区大小改变。

以上就是关于MFC 编辑框中获取选中文字的信息!!全部的内容,包括:MFC 编辑框中获取选中文字的信息!!、如何用MFC编写一个程序,获得整个屏幕的截图并保存为bmp格式、MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9503734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存