VC移动对话框到扩展屏幕,全屏显示



typedef BOOL ( __stdcall * pEnumDiaplayDevices )(  LPCTSTR lpDevice,                // device name
  DWORD iDevNum,                   // display device
  PDISPLAY_DEVICE lpDisplayDevice, // device information
  DWORD dwFlags                    // reserved
);


int GetScreenRect( int ScreenNo, RECT *rect )
{
    pEnumDiaplayDevices xenum;
    BOOL flag;
    DISPLAY_DEVICE dd;
    ZeroMemory( &dd, sizeof( dd ) );
    dd.cb = sizeof( dd );
    HMODULE hhh = LoadLibrary( _T( "user32.dll" ) );
    if( hhh )
    {
        xenum = ( pEnumDiaplayDevices )GetProcAddress( hhh, "EnumDisplayDevicesW" );
    }
    if( !xenum )
    {
        FreeLibrary( hhh );
        return 1;
    }


    //flag = EnumDisplayDevices( NULL, ScreenNo, &dd, 0 );
    flag = xenum( NULL, ScreenNo, &dd, 0 );


    if( !flag )
    {
        FreeLibrary( hhh );
        return 1;
    }


    DEVMODE dm;
    ZeroMemory( &dm, sizeof( dm ) );
    dm.dmSize = sizeof( dm );
    flag = EnumDisplaySettings( dd.DeviceName, ENUM_CURRENT_SETTINGS, &dm );
    rect->left = dm.dmPosition.x;
    rect->top = dm.dmPosition.y;
    rect->right = dm.dmPelsWidth;
    rect->bottom = dm.dmPelsHeight;


    FreeLibrary( hhh );
    return 0;
}






void Ctmfc1Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码


//ClipOrCenterWindowToMonitor( m_hWnd, MONITOR_CENTER );
 






    RECT rec;
    int result = GetScreenRect( 1, &rec );
   // if( rec.left == rec.right )
    {
        // 没找到第二显示器,随便判断一下,不严格


MoveWindow( &rec );


CenterWindow();


ModifyStyle(WS_CAPTION,0,0);
 
MoveWindow(rec.left, 0, rec.right, rec.bottom );


}


}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值