Console程序中取得窗口句柄

来源:互联网 发布:麒麟与ubuntu的区别 编辑:程序博客网 时间:2024/05/14 15:32

在学习DirectSound播放声音时有一个函数:SetCooperativeLevel(m_hWnd,DSSCL_PRIORITY),第一个参数是窗口句柄,使用NULL会返回失败的,而我的是Console程序,如何得到一个窗口句柄(当创建一个窗口,也是可以的,但比较繁琐,下面的方法比较简单)

HWND GetConsoleHwnd(void){<span style="white-space:pre"></span>#define MY_BUFSIZE 1024 // Buffer size for console window titles.HWND hwndFound;         // This is what is returned to the caller.char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated// WindowTitle.char pszOldWindowTitle[MY_BUFSIZE]; // Contains original// WindowTitle.// Fetch current window title.GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);// Format a "unique" NewWindowTitle.wsprintf(pszNewWindowTitle,"%d/%d",GetTickCount(),GetCurrentProcessId());// Change current window title.SetConsoleTitle(pszNewWindowTitle);// Ensure window title has been updated.Sleep(40);// Look for NewWindowTitle.hwndFound=FindWindow(NULL, pszNewWindowTitle);// Restore original window title.SetConsoleTitle(pszOldWindowTitle);return(hwndFound);}


0 0