C++中嵌入ie瀏覽器總結(jié)(4) - 對(duì)話框拖動(dòng)
前面忘了寫這個(gè)問題,就是對(duì)話框的拖動(dòng)問題。就像我前面的圖片展示的對(duì)話框,一般的windows對(duì)話框是可以拖著標(biāo)題欄移動(dòng)的,但是我們這里沒有任何原來的標(biāo)題欄了,只有html頁面,怎么拖呢? 好像有點(diǎn)麻煩。冥思苦想之后,想到一種辦法,通過前面的接口給c++發(fā)指令,讓c++移動(dòng)窗口,頁面上計(jì)算好拖動(dòng)的距離。html里面頁面的拖動(dòng)還是比較簡(jiǎn)單的,c++里面移動(dòng)也就是調(diào)用 MoveWindow。由于前面的通訊方法還是比較靈活,沒用多少時(shí)間,就把這個(gè)功能實(shí)現(xiàn)了。但是一運(yùn)行看,不太對(duì)勁,拖動(dòng)過程拖尾現(xiàn)象太明顯。可能是c++不斷調(diào)用 MoveWindow 重繪效率比較低。這可麻煩了
還是google好啊,經(jīng)過一番搜索,找到了答案:
void TooltipDlg::moveWin( const std::vector<wxString> &args )

{
if(args.size()<2) return;
long x,y;
args[0].ToLong(&x);
args[1].ToLong(&y);
int ix,iy;
ix = x;
iy = y;
ClientToScreen(&ix,&iy);

::SendMessage((HWND)this->GetHWND(),WM_NCMOUSEMOVE,HTCAPTION,MAKELPARAM(ix, iy)); 
}今天一鼓作氣把前面幾天的工作都總結(jié)了下來,還真是敲得手有點(diǎn)累。但是這些東西確實(shí)是不太常規(guī)的方法,找解決問題的方法很難,這里先把他們記錄下來,免得以后找不到了。以前確實(shí)有很多知識(shí)都是用了就丟一邊找不到了。 也希望給有類似疑問的朋友一個(gè)幫助。
posted on 2008-12-20 23:08 jerrychan 閱讀(2449) 評(píng)論(2) 編輯 收藏 引用 所屬分類: C++

