龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC程序设置桌面的分辨率(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
if(d_pid==pi.dwProcessId) if(GetWindow(hwnd,GW_CHILD)!=NULL) if(hwndok!=hwnd) { n_con=20; break; } } n_con++; } if(n_con==20) return false; return true; } void SetScreen(const char *so1,char *so2) { H
   if(d_pid==pi.dwProcessId)
    if(GetWindow(hwnd,GW_CHILD)!=NULL)
     if(hwndok!=hwnd)
     {
      n_con=20;
      break;
     }
  }
  n_con++;
 }
   
 if(n_con==20)
  return false;
 
 return true;
}
void SetScreen(const char *so1,char *so2)
{
    HWND pw_main;
 HWND pw_chscroll;
 HWND pw_chtext;
 HWND pw_ok;
 PROCESS_INFORMATION pi;
 
 if(!FindMainWindow(pw_main,pi))
  return;
 
 if(!FindChildWindow(GetWindow(pw_main,GW_CHILD),11,pw_chscroll))
  return;
 
 if(!FindChildWindow(GetWindow(pw_main,GW_CHILD),14,pw_chtext))
  return;
 
 if(!SetSolution(pw_chscroll,pw_chtext,so1,so2))
  return;
 
 PostMessage(pw_main,WM_COMMAND,1,0);
 
 if(!GetOkWindow(pw_main,pi,pw_ok))
  return;
 PostMessage(pw_ok,WM_COMMAND,1,0);
 
 if(!GetOkWindow(pw_main,pi,pw_ok))
  return;
 PostMessage(pw_ok,WM_COMMAND,6,0);
 
}
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 
    SetScreen("1280","720");
 return 0;
}

这个程式在win2000下已经通过验证了,在winxp下要将FindChildWindow中的count改为8和11。本来可以通过窗口文本来解决查找问题,但是由于该程式要用于多国语言的操作系统所以该方法不可行。由于技术水平的问题,一些不周到的地方在所难免,希望朋友们能够给予斧正,不胜感激。这又是本贴的一个目的。

精彩图集

赞助商链接