MFC界面在不用显示器上的正常显示问题

用VS2012编写的MFC界面,C++,希望能够在不同尺寸的显示器上都能正常显示,界面有按钮,teechart等空间,望大神指点一二。

0

2个回答

需要计算屏幕的宽高以及你程序的宽高,进行对比后,获取一个缩放比例,之后用这个比例去修改你之前设计好的各个控件的位置。
CRect rect;
GetWindowRect(rect);//当前程序界面宽高
m_nScreenWidth = GetSystemMetrics(SM_CXSCREEN);//分辨率宽高
m_nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
double dScaleX = (double)m_nScreenWidth / (double)bm.bmWidth;//xy两个方向的比例
double dScaleY = (double)m_nScreenHeight / (double)bm.bmHeight;

0

可以在OnSize里面调整控件的位置和大小,使得它们都出现在合适的位置。比如说按钮按照下边和左边边距对齐,teechart按照屏幕的长宽缩放。具体看你的需要了。

0
phenix2009
白色一大坨 回复weixin_35838529: 老兄,解决了,来结贴啊
一年多之前 回复
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 回复weixin_35838529: 用showwindow(sw_maxmize)最大化,那么你的窗口的尺寸就是了,用getwindowrect获取
一年多之前 回复
weixin_35838529
weixin_35838529 回复Q_155132206买实惠C币: 如何获取屏幕尺寸信息
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
显示器无法正常显示
重装2000后,每次开机在进入桌面前屏幕自动缩小1/3,进入系统后没有自动恢复,需手动调节显示器。我设置的分辨率是800*600。重装系统之前没有这样的问题。请问各位大侠是何故?
MFC界面字符串显示的问题
自定义了一个消息,像界面的某一个edit发送字符串并显示rnPostMessage是这样写的:rn[code=c]rnrnPostMessage(m_pMainWnd->GetSafeHwnd(), WM_FOLDERMONITOR_MSG_LOGSERVERSTATUS, (WPARAM)strMessage, 0);rnrn[/code]rnstrMessage是TCHAR类型的rnrn事件处理是这样写的:rn[code=c]rnrnTCHAR* strMessage = (TCHAR*)wParam;rn if (!strMessage)rn return 0;rnrn m_editJobStatus.SetWindowText(strMessage);rnrn[/code]rn但是这时候的strMessage已经是不是以前的字符串了,成了乱码,例如:”Online“变成了”ō䠄i“ 显示出来也不对了rn请问这是什么原因?rnrn项目使用的是 Use Unicode Character Setrnrn谢谢了 - -|
显示器上显示在LED电平显示器上显示脉冲数。
将实验程序下载到板子上运行时,按下K5,灯的会进行计数。
不用MFC的 界面如何制作
不用MFC 现在只能实现一个窗 口 用的 vc2010 rn 但是窗口如何贴图不会 如何创建控件不会 有教学视频什么的也行 rn
显示器电源显示灯正常,开机时显示器无任何显示
一次在客户处维修电脑,一台式机显示器是好的,接到其它主机上能正常显示,于是就怀疑主机显示故障,心想拨下来重新插一次试下,可一看是集成显示,完了这可怎么是好,在我不知道怎么办时,一位有经验的同事说你把CMOS电池放下电,结果放电成功后重启电脑,显示器竟然有显示了,但不明白为什么会这样,就向那们同事请教,但说有静电,但我心里却不是很认可,认为没有道理,于是在网上找了...
MFC关闭显示器的问题!
兄弟初学VC++,想用VC用一个关闭显示器的小程序!rnrn要用SendMessage(HWND_BROADCAST, WM_SYSCOMMAND,SC_MONITORPOWER,2);rnrn为什么执行后,确实是显示器关闭了,但是几秒钟后又自动打开了(我没有动鼠标或键盘)。rnrn这是为什么呢???rnrn请兄弟们指点一二。。。。。。。。。。。。。
mfc界面字符显示
现在在编一个mfc的界面,用串口通信和一台下位机机器相连,从上位机界面输入汉字,通过串口给下位机,下位机得到一组数组(字模),用来在下位机上的液晶屏显示字。现在需要从下位机读数组,通过通信传给上位机界面,显示汉字和字母。所以想问通过什么方式从数组转化为能在界面上显示的汉字?(数组即字模是12*16的,非16*16)
界面显示器
这个基于vc6.0mFC的windows程序设计,对于初学者有一定好的帮助,也希望你帮助到你
ActiveForm在不同显示器上的显示问题?
ActiveForm在17和15显示器上的显示效果不一样。如在15显示器上ActiveForm能充满IE,则在17显示器上ActiveForm不能充满IE。rn在网页中用 width=736rn height=440rnrn达不到效果,只是ActiveForm边缘扩大而已。rnrn高手请指点一二。谢谢!rn
程序显示在指定显示器上
procedure SetFormMonitor(Form:TCustomForm;MonitorIndex:integer); begin if (MonitorIndex>-1) and (MonitorIndex<Screen.MonitorCount) then{保证屏幕索引在范围内} begin Form.SetBounds( Scr...
一个显示器上显示分屏
听说一个显示器可以分几个桌面。还没来的急试呢。谁会教下。
Swing界面无法正常显示
最近发现我笔记本上的JavaSwing程序不能显示面板内容了!包括Java控制台也是不能正常显示面板内容。具体症状如下:启动一个Swing程序之后,只是显示一个空白的窗口,标题和关闭按钮都有,功能也正常,但是窗口里面的内容面板区没有内容显示!而事实上,面板区的内容还是存在的,点击鼠标或者敲击回车按钮,都是有效果的。但是就是不能显示内容!!郁闷!!有谁了解如何解决这个问题么?
显示器上出现竖条,不能正常起动
我2003年5月配了台电脑rn赛扬1.7G ,256M (杂牌) 主板ms-845D 硬盘ST40G 杂牌显卡 rnwindows2000 advance server rn800X600 真彩32色 刷新频率85HZrn今年3月出问题了,显示器上出现竖条,不能正常起动rn用替换法发现显卡出了问题,又花了330买了块七彩虹显卡 rn昨天又出现同样的花屏现象(显示器上出现竖条,不能正常起动)rn 各位高手帮我分析一下???????
无边框全屏winForm界面,不能显示在辅显示器上
场景:我有2个显示器,一主一辅,辅显示器主要显示一个全屏无框的监控画面,主显示器自由操作。rnrn问题:辅显示器的程序一打开全屏无框的界面就自动跑到主显示器了。在辅显示器上网,打开全屏视频,就不会跑到主显示器
救命!我的显示器不能正常显示红色了!
我的是老显示器了,14英寸的,AcerView 34T。我搬动了一个地方,就这样了,刚开始还以为是15针连接插头的针断了或出了问题,后检查了一下,干脆不是它的问题,现在凡是显示红色的地方就显示成黑色或青铜色,唉!可怜啊。只有极偶尔的时候会渐渐恢复成红色,但停不了多久,就该红色的地方又变成黑色了。红成黑都是常态了,一开机就不显示正常。有时我试着拍一下显示器,它会转成红色,但还是停不了多久,红的地方又变黑了。而且拍不总是起作用的,有时一点反应都没有的。各位,咋办啊?难道我的显示器坏了,需要经常拍一拍?或者砸一砸?为什么红颜色的地方会显示不正常,显示成青铜色或黑灰色呢?rnrn期待高手救命!
配置问题:显示器不能显示正常颜色
在红旗linux中,我设置了系统的显示颜色为24位真彩色,并且显卡的驱动是自动测试的。为什么显示器的颜色好像还是256色。在装微软的windows时可以显示正常的颜色。
相同界面设置,在台式机显示器和笔记本上显示高度不一样?
两台机器显示器分辩率相同1024*768,但在台式机上设730的高度,在笔记本上显示780!!
tooltip在双显示器下不能正常显示
我有两个显示器布局如下rn[img=http://i166.photobucket.com/albums/u106/clear_zero/monitor.jpg][/img]rnrn现在我在显示器2上面显示一个form,form里面image下面的tooltip会出现在显示器1上面。rn当我拖拽form到显示器1上面的时候,tooptip显示正常rnrn这样的问题如何解决呢?rn谢谢
在启动机器显示器不能正常显示~~
我在启动计算机时候,显示器就闪,有点像分辨率上高了!但是进了WINXP后就好了,我以为是显示器又坏了!所以我拿到经销商那里,可是根本不是显示器的问题,开机时机进入WINXP后都没有事.rnrn我的显示器是美格770AG PLUS,把亮度和对比度都调到最低还是有亮度能看见屏幕这正常么?
求助:主机启动正常,显示器没显示
因为近几天天气较为潮湿,前天开机时,发现显示器没有显示,电脑启动时,听到“嘀”一声,然后电脑的启动音乐响起,但是显示器没有任何显示。怀疑是显示器有问题,但是换到第二台电脑上,显示器显示正常。本人的显卡是集成的,不知道是什么原因导致这种现象呢?
显示器显示问题
有一台联想电脑,装的是2000专业版,原先用的好好的,后来我用update来升级mediaplayer可还没完,显示器就跳了一下,然后屏幕就被拉长了,只有显示器的1/3。重新启动也一样,但安全模式下却好的,而且我删了显卡驱动后也行的但一装上显卡驱动就又不行了,请教各位高手!!!
多显示器显示问题
使用OGRE做一个驾驶的小游戏,用三台显示器分别显示左、前、右的景物,摆成 \__/ ,人在中间模拟驾驭。rn 现在还没有直接支持三个显示器的显卡,所以不知道怎么安排能达到最好的可视效果。rn 目前做法是用三台相同配置和系统的电脑,里面存相同的游戏场景,一台主机上接收用户的操作,在进行相应的处理后,将处理过的顶点位置信息发送到另外两台从机上,三台电脑上分别渲染,各自独立输出。但同步上有问题(不同主机渲染后光线阴影不太一样,特别是左边和中间、右边和中间不能很好的衔接上,天空渲染后也不太一样),效果不能令人满意。rn 请问高手,有没有更好的实现办法?希望各位不吝赐教。
显示器的显示问题??郁闷...
显卡intel 910L ,显示器是液晶的,刚下的intel 驱动rn为什么显示最高 1024*768,分辨率最高75hzrnrn???谢谢
显示器在正常模式下花屏,安全模式和VGA模式显示正常
起因是机器死机。机器死机的原因很古怪,我拨号上网,用了个分线器,一带三的,一个接电话,一个接猫,另一个空着。但接上分线器以后,一来电话,机器就死。rn死了几次以后,再一开机,发现屏幕开始花了,象百叶窗那种,有时候是屏幕分成画中画似的好几块。rn但进安全模式和VGA模式显示正常。正常模式下,屏幕花了以后,调整一下显示设置,也会好一小会,然后又花。rn我重装了驱动,重装了系统(覆盖),装上了DirectX8.1,问题照旧,操作系统是win2000,显卡是华硕几年前的Nvidia riva 128。rnrn好像不是硬件问题?那么是软件问题?到底什么问题呢?rn
VS2015开发MFC界面,在WIN7下显示问题
最近开发平台切换到win10 + vs2015, 但是发现MFC开发出来的界面在Win7,xp下显示时,大小会改变:rnrn[img=https://img-bbs.csdn.net/upload/201609/01/1472697041_169062.png][/img]rnrn主界面,和PropertyPage界面的属性都设置为 use system font 设置了false或者true,试了下都像上图一样, 我估计是用了PropertySheet和PropertyPage的原因, 应为PropertyPage部分都缩小了(包括PropertyPage页面上的控件大小都有变化), Dialog部分都没有缩小。rnrn那位大神遇到过这个情况,帮忙看下
MFC单文档界面打开文件内容的显示问题
我用MFC做了一个分割界面,但是不知道怎么在点击打开文件按钮并且选择文件之后如何让文件在左边显示出来?以及右边的显示问题?下面是关于我在右边显示的代码。还有就是想问问各位怎么在点击打开文件按钮并且选择文件之后如何让文件在左边显示出来?rn我的部分代码:rnCMainFrame的头文件中我定义的:rn CStatusBar m_wndStatusBar;rn CSplitterWnd m_wndSplitter;rn CToolBar m_wndToolBar;rnrn rn rn BOOL m_bSysEnable;rn MibFenXi m_fenxi;rn CString m_strCurFile;rnrn CEdit *m_pEditSrc,*m_pEditOut;//左右两个界面rn然后我的mainfrm中代码部分:rnrnBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) rnrn if (!m_wndSplitter.CreateStatic(this, 1, 2)) //创建1行2列的切分窗口rn rn TRACE0("Failed to CreateStaticSplitter\n");rn return FALSE;rn rnrn CRect rc; //获得客户区大小rn GetClientRect(rc);rn int x=rc.Width()/2;rn int y=rc.Height()/2;rnrn if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CSourceEditView), CSize(x,y), pContext))rn rn TRACE0("Failed to create second pane\n");rn return FALSE;rn //创建第1个视图rnrn if (!m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(x,y), pContext))rn rn TRACE0("Failed to create first pane\n");rn return FALSE;rn //创建第2个视图rnrnrn m_pEditSrc=&((CEditView*)m_wndSplitter.GetPane(0,0))->GetEditCtrl(); //获得CEditView视图中的编辑框控件的指针rn m_pEditOut=&((CEditView*)m_wndSplitter.GetPane(0,1))->GetEditCtrl();rnrn rnrnrn/*--------------------------------设置字体--------------------------*/rn m_font.CreateFont(14, 0,0,0,FW_NORMAL, 0,0,0,rn DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,rn DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Verdana");rn rn m_font2.CreateFont(12, 0,0,0,FW_NORMAL, 0,0,0,rn DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,rn DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "fixedsys");rn rn m_pEditOut->SetFont(&m_font);rn m_pEditSrc->SetFont(&m_font2); rn/*--------------------------------设置字体--------------------------*/rnrnrn ::Sleep(500);rnrn return true;rnrn下面是我点击某个按钮之后的控制函数,第一个语句是在右边框中显示数据:rnm_pEditOut->SetWindowText("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t正在进行词法分析,稍等....");rn但是我运行程序后却没有达到预想的效果,我也不知道为什么。rnvoid CMainFrame::OnCifa() rnrn m_pEditOut->SetWindowText("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t正在进行词法分析,稍等....");rn CWaitCursor cur;rnrn CString str, strTemp;rn m_pEditSrc->GetWindowText(strTemp);rn if(strTemp.IsEmpty())rn rn m_pEditOut->SetWindowText("\r\n\r\n\r\n\r\n\r\n\r\n\r\n请在左边编辑源程序或打开一个源程序文件!\r\n\r\n然后再进行词法分析");rn return;rn rn rnrn char buf[10000];rn int sz=m_pEditSrc->GetWindowText(buf,10000); //获得源代码rn rn ::strcpy(m_fenxi.m_str,buf);rnrn m_fenxi.CiFaFenXi(); //进行词法分析rnrn CIFA * * p=m_fenxi.m_cifa;rnrn int s=0;rn int a=p[s]->nType;rn while ((p[s]->nType)>=0)rn s++;rn char (*ep)[100];rn ep=m_fenxi.m_szErrMsg;rn //result to : p,s,eprnrnrn int ErrorCount=0;rn str.Format("\r\n\t\t词法分析结果\r\n\r\n\r\n输出格式:二元式序列(类型,值)单词\r\n\r\n");rn rn for (int i=0;inType>0)rn rn strTemp.Format("(%d,%d)\t%s\r\n",p[i]->nType,p[i]->nValue,p[i]->szText);rn str+=strTemp;rn rn elsern rn ErrorCount++;rn if (p[i]->nValue==2 && (p[i]->szText[0]>126 || p[i]->szText[0]<32))rn rn strTemp.Format("错误号:%d %s 【 无法显示该字符! 】\r\n", p[i]->nValue,ep[p[i]->nValue]);rn str+=strTemp;rn rn elsern rn strTemp.Format("错误号:%d %s 【 %s 】\r\n",p[i]->nValue,ep[p[i]->nValue],p[i]->szText);rn str+=strTemp;rn rn rn rn strTemp.Format("\r\n 发现 %d 个错误!\r\n",ErrorCount);rn str+=strTemp;rnrn m_pEditOut->SetWindowText(str);rn rn // TODO: Add your command handler code herern rnrn我不知道是哪儿错了
MFC 界面问题 Edit 不显示
我在对话框上加入了一个editcontrol控件,设置enablewindow(FALSE),后界面就将editcontrol控件隐藏了,求解,当从别的界面切回来后,又开始显示。求助大神
显示器只能显示图形界面,不能显示字符界面
进入WINDOWS前黑屏,进入WINDOWS后慢慢变亮。在WINDOWS下使用全屏MS-DOS方式则黑屏,EXIT后显示正常。该怎样处理?
怎样才能不用MFC创建Ribbon界面?
我翻了MSDN,都是用MFC的,能不能不用MFC,纯用C创建Ribbon界面啊?
不用MFC,在单文档界面下怎样添加图片???
nEraseBkgnd( CDC* pDC )rn这个函数要使用MFC的。
不用MFC,如何做Windows风格的界面~
不用Dialog,需要做Windows的程序,不是控制台的程序,能不能做,该怎么画?
显卡驱动正常,显示器不正常
X3100显卡 HP 3743 款rn如题 :rn一次系统优化后,显示不正常rn驱动重新安装正常,显示器却不正常,分辨率不能调整,保持在640 X 480 4位色...可怜啊.rn后升级到最新版本,设备管理器中,驱动黄色感叹号(不正常).同时显示只有默认监视器rn卸载后,没有装上显卡驱动到还可以调整到1280 X 800 ,但适配器,显示为 “不可用” rnrn怀疑是显示器 驱动没有装好,重新装上没有反应。晕死。
显示器启动很不正常
装的2K的操作系统,赛阳800,里台TNT2 PRO2的显卡,rn机器经常性的启动不了显示器,一般重新启动过二三十次才可以启动显示器一次,rn而且放影碟的时候基本上十来分钟就要死机,rn据说是要换成USB的键盘和鼠标才可以,rn可是俺担心是不是换了鼠标和键盘以后就会保证不出问题?rn请那位大虾多多指教?
MFC最短路径双缓冲显示界面
这是一个关于最短路径的搜索,并用MFC的界面显示出来,其中显示用了缓冲,速度经过了优化,不闪屏。界面做的很可爱。。。
MFC雷达界面数据显示
我想利用MFC实现雷达扫描的数据实时显示,利用控件要怎么做??我目前是把航向等数据利用静态文本控件在界面显示,先做成静态的,这样的方向对吗
让MFC不显示界面
有一种好方法,就是在OnInitDialog(...)中加入以下的代码:   SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW); ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);       这样,运行对话框程序之后,就不会出现对话框界面了。
在MFC上显示OPENCV
在MFC上显示opencv,首先要包含CvvImage.h,这是因为在2.4.9版本已经没有该类,所以我们需要自己来定义该类,头文件类容如下//================================================================ // CvvImage.h //=============================================
网页上的德文ü不能正常显示的问题
帮别人做一个德文网站,遇到一个很奇怪的问题,通过后台发布新闻时,ä 可以正常显示,但是ö 和 ü 不能正常显示,编码已经是utf-8了,请高手指点!
IE7.0上无法正常显示
如题,rn以下代码在IE6.0里面,它们可以正常显示,rnrn可是在IE7.0里面,就无法显示图片,rnrn请各位大侠们帮帮忙,出下招,让它们在IE7.0上也可以正常显示,谢谢......rnrn rn
屏幕上无法正常显示?
我装RedHat的 Fedora Core3 。rnrn为了对比,安装了2台配置不一样的机器,一台配置比较好的,什么问题也没有。rnrn另外一台配置比较垃圾的,进入图形界面后随机时间(短则10秒以内,长约3分钟)后,屏幕上变成一些花花绿绿的横条,完全看不到桌面上的内容。一般是登录完20秒以内出问题。rnrn机器没有显卡,是主板上带的4M显存的AC97. rn应该排除显式器原因,因为一时找不到太烂的显式器,这台是索尼原厂的GDM-17SE,在安装的时候能选到这个型号的,应该没问题。 rnrn哪位能告诉我原因???
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑