亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4368 | 回復(fù): 11
打印 上一主題 下一主題

窗口跟隨-Win32::GUI [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-04-14 19:04 |只看該作者 |倒序瀏覽
本帖最后由 mysqllog 于 2012-04-14 19:07 編輯

目前用Win32::GUI寫工具,界面和下面這圖相似:


當(dāng)然沒有這么華麗

功能描述:
當(dāng)移動左邊的窗口時,右邊也要相對移動,但目前我移動左邊窗口時,右邊的不會移動,想知道要怎么實現(xiàn)這樣的功能。
我的主窗體代碼:
$main = Win32::GUI::Window->new(
  -name => 'Update',
  -text => '帖子查看器',
  -width => 240,
  -height => 400,
  -class=>$wm_class,
  -maximizebox=>0,
);

右邊窗體的創(chuàng)建代碼:
$Rightwin = new Win32::GUI::Window(
    -name  => Rightwin,
    -title => "列表",
    -pos   => [ $x + 240, $y+20 ],
    -size  => [ 640, 360 ],
        -class => $right_class,
        -maximizebox => 0,
        -parent => $main,
);

只要能得到左邊窗體的右上角和右下角的坐標(biāo)應(yīng)該就能實現(xiàn)了,再通過$main->Rightwin->Moveto之類的函數(shù)。怎么得到這兩個移動后的坐標(biāo)呢?

論壇徽章:
0
2 [報告]
發(fā)表于 2012-04-16 10:06 |只看該作者
flw不來指點下么,對win32的API完全不了解哦。

論壇徽章:
0
3 [報告]
發(fā)表于 2012-04-16 12:46 |只看該作者
本帖最后由 QQ1921961 于 2012-04-16 13:02 編輯

  1. #!/usr/bin/perl

  2. use strict;
  3. use Win32::GUI qw(WM_MOVING);

  4. my $main_win = Win32::GUI::Window->new(
  5.     -name  => "W1",
  6.     -title => "W1",
  7.     -pos   => [ 100, 100 ],
  8.     -size  => [ 300, 200 ],
  9. );

  10. $main_win->Hook(WM_MOVING, \&W1_Moving);
  11. $main_win->Center();
  12. $main_win->Show();

  13. my $sub_win = Win32::GUI::Window->new(
  14.     -name  => "W2",
  15.     -title => "W2",
  16.     -size  => [ 400, 400 ],
  17. );

  18. $sub_win->Move($main_win->Left() + $main_win->Width(), $main_win->Top());
  19. $sub_win->Show();

  20. Win32::GUI::Dialog();

  21. exit;

  22. sub W1_Moving {
  23.     my ($win, $id, $lParam, $type, $msgcode) = @_;
  24.    
  25.     my $x = $main_win->Left() + $main_win->Width();
  26.     my $y = $main_win->Top();
  27.    
  28.     $sub_win->Move($x, $y);
  29.    
  30.     return;
  31. }

  32. sub W1_Terminate {
  33.     return -1;
  34. }

  35. sub W2_Terminate {
  36.     return -1;
  37. }

復(fù)制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2012-04-17 09:31 |只看該作者
回復(fù) 3# QQ1921961

這個效果很Cool!

論壇徽章:
0
5 [報告]
發(fā)表于 2012-04-17 09:44 |只看該作者
回復(fù) 3# QQ1921961


    早上一來,這個問題就解決了,開心

隨便說一句,既然是Win平臺,何來#!/usr/bin/perl?

論壇徽章:
0
6 [報告]
發(fā)表于 2012-04-17 09:50 |只看該作者
本帖最后由 mysqllog 于 2012-04-17 09:57 編輯

回復(fù) 3# QQ1921961


    似乎不太理想啊,移動左邊的,右邊的要等你再移動下左邊的時候,它才會移動到你第一次移動左邊的窗口時的坐標(biāo)。

這些API,從哪看來的?

論壇徽章:
0
7 [報告]
發(fā)表于 2012-04-17 12:35 |只看該作者
mysqllog 發(fā)表于 2012-04-17 09:44
回復(fù) 3# QQ1921961




Windows 上首行加shebang標(biāo)識確實無太大意義,
我也只是習(xí)慣性為了與linux保持一致而已。

而且我的Perl所在路徑也通常為 x:\usr\bin\perl.exe

純屬個人習(xí)慣 ;-p

論壇徽章:
0
8 [報告]
發(fā)表于 2012-04-17 12:42 |只看該作者
mysqllog 發(fā)表于 2012-04-17 09:50
回復(fù) 3# QQ1921961




我這沒這種問題啊。

你是指移動右邊窗口, 左窗口也同樣跟隨吧?
如何是這樣,只需右窗也依樣添加一個Hook。


詳細(xì)可查閱 Win32-GUI的文檔: http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi
當(dāng)然Win32-GUI只是Windows API的封裝,細(xì)節(jié)處查閱MSDN也是必要的。


論壇徽章:
0
9 [報告]
發(fā)表于 2012-04-17 12:43 |只看該作者
回復(fù) 4# iamlimeng


確實很Cool,呵呵。。

論壇徽章:
0
10 [報告]
發(fā)表于 2012-04-17 14:27 |只看該作者
回復(fù) 8# QQ1921961


    我只移動左邊的窗口

在我的win2003上,在移動左邊時,右邊的不會及時的跟隨,只有在第二次移動時才會移動到第一次移動的坐標(biāo)點上。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP