WEB开发网
开发学院软件开发VC 增加状态栏按钮及其它 阅读

增加状态栏按钮及其它

 2008-01-19 20:25:10 来源:WEB开发网   
核心提示:我正在写一个紧急情况警报程序,根据所收到的警报消息,增加状态栏按钮及其它,我的程序必须能够停止屏幕保护程序或者节能模式并显示显示报警消息,当然也可以 在屏幕保护程序之上显示报警消息,详见最新的 Platform SDK 中的 GetSystemMetrics, 这个函数是你经常要用的一个函数,我尝试了用 SetWind

我正在写一个紧急情况警报程序,根据所收到的警报消息,我的程序必须能够停止屏幕保护程序或者节能模式并显示显示报警消息,当然也可以 在屏幕保护程序之上显示报警消息。我尝试了用 SetWindowPos(&wndTopMost...),结果不灵,在 Windows 2000 的屏保中也没有成功。我的程序要在 Windows 2000 里运行,请问如何在特定的事件发生时终止屏幕保护?

Jungkun

早期在 Windows 3.1 和 Windows 98 时代,你只需获取活动窗口,并且简简单单地发送一条 WM_CLOSE 消息即可:

PostMessage(GetActiveWindow(),WM_CLOSE,0,0); 

    是不是看来很简单?但在Windows 2000下,这个方法不再有效。Windows 2000 中有单独的桌面概念,所以,屏保程序是运行在一个名叫 Screeen-Saver 的特殊桌面中。使用 GetActiveWindow 或是 GetForegroundWindow 是找不到屏保的窗口的,因为它们运行在其他的桌面下。所以,你必须打开 该桌面,枚举它的窗口,然后发送 WM_CLOSE 消息给它。

有关细节参见 Figure 1。

我用 C++ 如何侦测屏幕的分辨率是 640X480 还是 600X800 ?

Amir Dashti

Tehran

只需简单地调用 GetSystemMetrics: // width int cx = GetSystemMetrics(SM_CXSCREEN);
// height int cy = GetSystemMetrics(SM_CYSCREEN);   
  GetSyStemMetrics 是一个很容易使用的函数,它可以用来获得各种类型的全局尺寸,象一个图标的大小或是窗口标题栏的高度。在Windows 2000中 ,有些像 SM_CXVIRTUALSCREEN 和 SM_CYVIRTUALSCREEN 这样的新参数,可以用了获得多监视器系统屏幕虚拟尺寸。无论作为一个 Windows 新丁还是一个老鸟,都应该仔细察看 GetSystemMetrics 的文档,学习所有你能获得不同的系统参数尺寸。详见最新的 Platform SDK 中的 GetSystemMetrics。 这个函数是你经常要用的一个函数,每一版的 Windows 中都有新的变化。

1 2 3 4  下一页

Tags:增加 状态 按钮

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接