在试图用
HWND hWnd = ::FindWindow(NULL, _T("Windows Media Player"));
if (NULL != hWnd) { ::MoveWindow(hWnd, 0, 0, 300, 300, SWP_NOSIZE); }
移动Windows Media Player时遇到的问题…
由于Windows Media Player界面分为5层所以需要拿到5层界面全部的hwnd移动才把整个窗口移动到指定的位置
BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam)
{
if (hwnd == NULL)
return FALSE;
std::vector<HWND>* vWnds = (std::vector<HWND>*)lParam;
CString strWindowText = _T("");
::GetWindowText(hwnd, strWindowText.GetBuffer(256), 256);
strWindowText.ReleaseBuffer();
if (strWindowText == "Windows Media Player")
{
vWnds->push_back(hwnd);
}
return TRUE;
}
void int main()
{
std::vector<HWND> vWnds;
::EnumWindows(EnumWndProc, (LPARAM)(&vWnds)); //已取到窗口名
for (int i = 0; i < vWnds.size(); i++)
{
::MoveWindow(vWnds[i], 0, 0, 300, 300, SWP_NOSIZE);
}
}