如何实现横屏竖屏的切换

overbill 2008-11-17 09:08:45
在Windows Mobile上如何如何实现横屏竖屏的切换???是发送消息还是用API??
...全文
1316 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
overbill 2008-11-18
  • 打赏
  • 举报
回复
我是想从一个线程向前台程序发送一个消息,控制它横屏竖屏的切换,那么说就可以用SendMessage()发送WM_SIZE或WM_CHANGSETTING给它了???
beyondma 2008-11-18
  • 打赏
  • 举报
回复
1.你是想用代码切换横竖屏,这样的话ChangeDisplaySettingsEx
2.自己处理横竖屏切换时的控件的位置,WM-SIZE
3.如果你是想用硬件的方式切换转屏的话,那我得说不是所有手机都支持转屏。
overbill 2008-11-18
  • 打赏
  • 举报
回复
我的线程是后台服务,是独立的,与前台无关,ChangeDisplaySettingsEx(LPCSTR lpszDeviceName, LPDEVMODE lpDevMode, HWND hwnd, DWORD dwflags LPVOID lParam);参数hwnd必须是null,如果WM_SIZE或者WM_CHANGSETTING不能用的话,就只有向系统注册一个自定义消息WM_NOTIFY_CHANGESIZE,前台程序在该消息的响应函数里用ChangeDisplaySettingsEx()屏幕切换,不知道这个思路有没有问题??
TracyZhongcf 2008-11-18
  • 打赏
  • 举报
回复
WM_SIZE和WM_CHANGSETTING都仅仅是屏幕大小变化了之后才会触发的,你现在要自己控制屏幕切换,当然是用ChangeDisplaySettingsEx了。
你可以自己定义一个消息WM_NOTIFY_CHANGESIZE,在你的线程中这样:

#define WM_NOTIFY_CHANGESIZE WM_USER+100
SendMessage(m_hMainAppWnd, WM_NOTIFY_CHANGESIZE, ……)


然后在主程序中响应WM_NOTIFY_CHANGESIZE消息,

MESSAGE_HANDLER(WM_NOTIFY_CHANGESIZE, OnChangeWindowSize)

LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
ChangeDisplaySettingsEx(……);
return 0;
}

当然,使用ChangeDisplaySettingsEx的时候需要填入一些参数,这个你自己去看看怎么用吧。
文斌 2008-11-17
  • 打赏
  • 举报
回复
你发送WM_SETTINGCHANGE消息,具体参数参看MSDN吧
overbill 2008-11-17
  • 打赏
  • 举报
回复
请问楼上,ChangeDisplaySettingsEx函数是放在WM_SIZE或者WM_CHANGSETTING消息里面码?我想发送一个消息给某个应用程序,通知它进行横屏竖屏的切换
cytlyy 2008-11-17
  • 打赏
  • 举报
回复
ChangeDisplaySettingsEx可以实现自己控制屏幕的切换。
edison8326 2008-11-17
  • 打赏
  • 举报
回复
当系统发生屏幕翻转的时候会自己call到WM_SIZE或者WM_CHANGSETTING。
你把实现切换功能的代码放到WM_SIZE或者WM_CHANGSETTING下面就可以了。

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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