系统字体设置(DPI)为120大小的时候,界面错乱问题

最近发现 当系统的DPI设置为大于96的默认设置时,软件的界面很多很乱掉,发现网络上很多软件都没有考虑到这个问题, 在MSDN上找到了关于这个问题 http://msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx 看了也用了,没有成功不知道为什么,如果各位朋友有弄过的可以给我留言呀,大家交流下哦,

既然上面的高级方法不行,那只能用土的了,发现只有用GDI 设置的字体才会改变,如果你用GDI+ 来显示字体就不会有放大的问题,,还有就是创建窗口或是控件是 ,如果用MoveWindow 那么控件的大小跟位置也不会发生改变,

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在CMFCButton类中,设置按钮的字体大小可以通过调用SetFont函数来实现。SetFont函数的格式如下: void CMFCButton::SetFont( CFont* pFont, BOOL bRedraw = TRUE ); 其中,pFont参数是一个指向CFont类对象的指针,它表示要设置字体字体大小可以在创建CFont对象时指定,也可以在创建后通过调用CFont的CreatePointFont函数来设置。例如,可以使用如下代码来创建一个大小为12的字体: CFont font; font.CreatePointFont(120, _T("Arial")); 接下来,将这个字体应用到按钮上,可以调用SetFont函数,将pFont参数设为指向刚创建的font对象。例如: CMFCButton btn; btn.SetFont(&font); 此外,SetFont函数还包含一个可选的bRedraw参数,默认值为TRUE。若设置为TRUE,则调用SetFont后按钮会立即重绘以显示新的字体;若设置为FALSE,则按钮不会立即重绘,需要在其他操作中手动调用按钮的Invalidate函数来触发重绘,以显示新的字体。 总结起来,要设置CMFCButton的字体大小,首先创建一个CFont对象并设置字体大小,然后调用SetFont函数将这个字体应用到按钮上即可。 ### 回答2: 在CMFCButton上设置字体大小可以通过修改按钮的字体属性来实现。可以通过CFont类来创建一个特定的字体对象,并通过设置字体的高度来调整字体大小。 首先,我们需要创建一个CFont对象并设置相关的字体属性。可以使用CreateFont函数来创建字体对象,并指定字体大小、样式等属性。例如,以下代码创建一个字体高度为20像素的普通字体: CFont font; font.CreateFont(20, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, _T("Arial")); 然后,我们可以调用CMFCButton的SetButtonFont函数来设置按钮的字体为我们创建的字体对象。例如,以下代码将按钮的字体设置为我们创建的字体对象: CMFCButton button; button.SetButtonFont(&font); 注意,以上代码只是演示了如何设置按钮的字体大小,并且提供的字体样式及大小参数仅作为示例。实际应用中,可以根据具体需求对字体的其他属性进行更改。同时,我们还需要确保在程序的适当位置执行以上代码,以确保字体设置已生效。 ### 回答3: 在使用CMFCButton类设置字体大小时,可以通过以下步骤来实现。 1. 首先,创建一个CMFCButton对象,可以在对话框模板中或者动态创建的对话框中添加一个按钮控件。 2. 然后,通过按钮对象调用SetFont函数来设置字体大小。SetFont函数接受一个CFont对象作为参数。 3. 在创建CFont对象之前,需要先创建一个LOGFONT结构体对象,并设置其成员变量。LOGFONT结构体的lfHeight成员变量用于设置字体的高度(字体大小),单位是像素。 4. 设置LOGFONT结构体对象的其他成员变量,如lfWeight可以设置字体粗细,lfItalic可以设置字体为斜体等。 5. 最后,通过CFont对象调用CreateFontIndirect函数创建字体对象,并将其传递给SetFont函数。 示例代码如下: ```cpp CMFCButton m_btnExample; // 创建一个按钮对象 LOGFONT lf; ZeroMemory(&lf, sizeof(LOGFONT)); // 清空lf对象 // 设置字体大小为12像素 lf.lfHeight = 12; // 设置其他字体属性 lf.lfWeight = FW_NORMAL; // 默认粗细 lf.lfItalic = FALSE; // 非斜体 CFont font; font.CreateFontIndirect(&lf); // 创建字体对象 m_btnExample.SetFont(&font); // 设置按钮的字体 ``` 上述代码中,我们创建了一个大小为12像素,普通样式的字体对象,并将其应用到按钮上。 需要注意的是,CMFCButton的字体大小设置受限于窗口环境的限制,可能无法完全按照指定的像素大小显示。此外,如果按钮处于高DPI模式下,则需要对字体大小进行相应的缩放处理,以适应高分辨率的显示屏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值