写程序.尤其是开发游戏应用.最需要的就是看到运行结果.如果debug的时候看不到当前刷屏的瞬间效果.会感到非常的不爽.
实际上本文仅仅是提到一句话就可以解决这个问题.
在windows API开发的时候可以
HWND CreateWindowEx(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
dwExStyle设置成置顶就不会跑到窗口的后面了.这样就会看到完整的debug效果.
但是开发Qt4就没有这个条件CreateWindowEx了..是QWidget.....咋办.
实际上还有个函数可以设置windows置顶.
BOOL SetWindowPos(
HWND hWnd,
HWND hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
UINT uFlags
);
ok使用这个函数就可以搞定这些问题了.
第一个参数:::获取 windows的句柄.Qt给每个widget都有一个句柄的实例.获得句柄是非常容易的.
WId QWidget::winId () const (QWidget获取hwind的函数).
第二个参数:::设置窗口行为HWND_TOPMOST(设置成这个就是置顶的意思)
第三个参数:::设置窗口在屏幕的x位置.(是按左上角的点为基准)
第四个参数:::设置窗口在屏幕的y位置.(是按左上角的点为基准)
第五个参数:::设置窗口width
第六个参数:::设置窗口height
第七个参数:::设置窗口的标志
实例:
QTSWidget::QTSWidget(QWidget *parent)
: QWidget(parent)
{
SetWindowPos(winId(),HWND_TOPMOST,
1280-WinWid,100,WinWid,WinHgt,SWP_SHOWWINDOW);
..............................................
}
这样debug Qt4程序 窗口就不会跑到后面去了.