http://www.csdn.net/expert/topic/426/426704.shtm

解决方案 »

  1.   

    C 代码给你,自己试验一下:

    CString strMsg;
    long  nWidthPixel= GetSystemMetrics(SM_CXSCREEN);
    long  nHeightPixel =GetSystemMetrics(SM_CYSCREEN);
    strMsg.Format("屏幕分辨率为:%d * %d",nWidthPixel, nHeightPixel);
    AfxMessageBox(strMsg);至于如何不受分辨率影响,有两种方法:
    1。你修改屏幕分辨率为自己需要的分辨率,在退出程序以后再恢复成原来的。这在游戏中 经常使用,但是在桌面程序不赞成这样做,因为没有一个用户愿意程序把自己的桌面改得乱七八糟。2。修改自己的程序,是界面随分辨率不同有不同的样子。如果想动态的改变界面上的元件,那将比较麻烦,比如很多例子用来示例如何使界面元件随窗口缩放而改变相对位置和大小。你可以参考。哦,你是在VB论坛发的帖子啊!
    那么声明一下了
      

  2.   

    Const SM_CYSCREEN = 1
    Const SM_CXSCREEN = 0Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As LongPrivate Sub Command1_Click()
        Dim nX As Long
        Dim nY As Long
        nX = GetSystemMetrics(SM_CXSCREEN)
        nY = GetSystemMetrics(SM_CYSCREEN)
        MsgBox "分辨率为:" & nX & "*" & nY
    End Sub
      

  3.   

    最简单的得到屏幕分辨率的方法
    Private Sub Form_Load()
    X = Screen.Width \ Screen.TwipsPerPixelX
      Y = Screen.Height \ Screen.TwipsPerPixelYMsgBox X & "/" & YEnd Sub