两个问题,一个50分!

tontony 2004-01-19 09:21:26
问题1:如果获取windows系统的字体大小?我说的这个字体是指:显示属性->设置->高级->字体大小 的字体

因为我的程序是在“大字体”下写,如果放到“小字体”的机器上,界面上的文字多要错位。


问题2:我在一个对话框启动(该对话框是我的程序的启动界面)时使用PlaySound(PathName,NULL,SND_ASYNC|SND_LOOP);循环播放一个背景音乐,但是当该对话框关闭后该音乐还在播放,如何在该对话关闭时也关掉该背景音乐?


谢谢!!祝大家新年快乐!
...全文
27 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weakwater 2004-01-19
  • 打赏
  • 举报
回复
你参考一下GetSystemMetrics或者GetTextMetrics的文档
能不能得到当前系统的字体
然后SetTextMargin
具体我就不知道了

你参考MSDN文档和<windows程序设计>吧
tontony 2004-01-19
  • 打赏
  • 举报
回复
第二个问题已经按楼上的兄弟所说得以解决。



我说的自适应是这么回事:因为我现在的程序编制时的windows系统的字体为“大字体”,而当我的程序移到目标机器上后,如果目标机器的windows系统的字体为“小字体”,那么我的程序界面上的标签什么的会错位,显示的相对位置和我设计的时候不一样了。所以我想我的程序不管系统是什么字体,都不会发生这个问题,称为“自适应”。

谢谢!
weakwater 2004-01-19
  • 打赏
  • 举报
回复
你说的自适应什么意思?
你可以参考一下<windows程序设计>
里面说的很清楚
tontony 2004-01-19
  • 打赏
  • 举报
回复
问题1扩展问题:

有没有可能让我的程序字体在每种字体下都能自动适应?

谢谢!
weakwater 2004-01-19
  • 打赏
  • 举报
回复
1.GetTextMetrics 可以看MSDN索引一下
weakwater 2004-01-19
  • 打赏
  • 举报
回复
pszSound就是PlaySound的第一个参数
weakwater 2004-01-19
  • 打赏
  • 举报
回复
1.GetSystemMetrics 去MSDN上索引一下,讲的很详细
2.在对话框的析构函数中调用Playsound(NULL,..,..)第一个参数设置为NULL就可以了;
To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.
NOMADBLUE 2004-01-19
  • 打赏
  • 举报
回复
问题1:代码为
int m_FontCx = LOWORD(GetDialogBaseUnits());
int m_FontCy = HIWORD(GetDialogBaseUnits());

if(m_FontCx =10 && m_FontCy ==20)
........
NOMADBLUE 2004-01-19
  • 打赏
  • 举报
回复

问题2:拦截WM_CLOSE消息,并在处理时关掉该背景音乐
myemailcn 2004-01-19
  • 打赏
  • 举报
回复
使用truetype字体

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧