亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? windows高級窗口的客戶區域拖動技術及其應用(轉載)中.txt

?? C_C++使用技巧全集
?? TXT
字號:
作者:chache
email: cyzhx@263.net
日期:2000-10-23 17:32:42

  二、WINDOWS高級窗口拖動方案中拖動框的客戶定制方法 

  以上介紹了窗口拖動前鼠標光標位置檢測及客戶命令區域內拖動功能的鼠標光標動態提
示方法,當用戶通過鼠標光標動態提示功能取得滿足拖動窗口條件時,通過點擊鼠標左鍵來
啟動拖動方案,這時最關鍵的技術問題是鼠標拖動窗口移動過程中的拖動框顯示與擦除功能
實現。窗口拖動虛框就是在WINDOWS 整個屏幕區域內顯示描述被拖動窗口大小的線框,它的
大小需要根據被拖動窗口的矩形區域大小和實際需要來具體確定,一般情況下為被拖動窗口
的矩形區域大小。 

  WINDOWS 系統中的繪圖方法是通過顯示設備描述表實現的,繪圖操作需要占用一定的GD
I 資源,系統為窗口、菜單、對話框、字體和各種繪圖函數分配足夠的GDI資源,WINDOWS 9
5中的GDI資源要比WINDOWS3.X中的GDI資源大得多。WINDOWS中有兩種使用顯示設備描述符表
的方法:更新窗口顯示客戶區域和直接操作窗口顯示客戶區域。更新窗口顯示客戶區域是直
接針對應用程序窗口矩形區域而言的,在窗口函數響應WM_PAINT消息時利用圖形操作命令進
行窗口更新處理: 

  InvalidateRect(hWnd,&WinRECT,TRUE);//WinRECT為要更新區域 

  UpdateWindow(hWnd); 

  窗口初始建立時默認更新窗口的全部區域,當要更新的矩形區域為NULL時表示更新窗口
所有矩形區域。函數UpdateWindow()通知系統向要更新矩形區域的窗口發送WM_PAINT消息,
窗口函數接收到WM_PAINT消息后首先利用BeginPaint()函數取得設備描述符表,然后利用圖
形命令直接對顯示設備進行更新操作,最后利用EndPaint()函數通知系統更新操作結束。其
描述性功能代碼如下: 

  case WM_PAINT: 

   PAINTSTRUCT ps; 

   hdc=BeginPaint(hWnd,&ps);//取得設備描述符表 

   SetBkMode(hdc,OPAQUE); //設備更新方式 

   SetBkColor(hdc,0x00c0c0c0); 

   //更新矩形區域內圖形操作 

   EndPaint(hWnd,&ps); //結束更新操作 

  break; 

  更新窗口矩形區域直接使用窗口類中定義的屏幕畫刷,即使利用SelectObject()函數選
擇相應屏幕畫刷也無效,而且更新矩形區域范圍是通過InvalidateRect()函數累加的,由Up
dateWindow()函數通知系統開始進行窗口更新操作,整個過程是由系統來調度的,因此使用
這種方法無法實現窗口的拖動虛框繪制和實時操作。 

  直接操作窗口客戶區域的方法是利用GetDC( )函數直接取得顯示設備句柄,利用各種圖
形操作命令直接對顯示設備進行繪圖,它使用屏幕當前設置的畫筆和畫刷來實現各種圖形繪
制操作,無須系統任何消息應用程序就可以實時地對屏幕窗口進行更新和繪圖操作。其操作
過程是首先取得顯示設備描述符句柄: 

  HDC hDC; 

  hDC=GetDC(hWnd);//取得hWnd窗口設備描述符表句柄 

  當hWnd參數為NULL時取得的是整個屏幕的設備描述符表句柄,然后利用SelectObject()
函數設置當前屏幕的畫筆和畫刷,就可以利用各種畫圖函數完成屏幕的繪圖操作,最后利用
ReleaseDC( )函數釋放獲取的顯示設備描述表。由于這種方法可以直接控制當前屏幕的畫筆
和畫刷,并且無需系統調度就可以直接對屏幕設備進行操作,因此利用這種方法完全可以實
現窗口的拖動虛框。窗口的拖動虛框是用來描述要移動窗口大小的虛線框和實線框,當矩形
拖動框為虛線時,需要利用畫點或畫線函數經過一定算法來實現,這就需要設置當前的屏幕
畫筆;當窗口的拖動框為實線框時,如果利用畫線函數只需設置屏幕畫筆即可,如果利用畫
矩形函數Rectangle( )在設置當前屏幕畫筆的同時必須使用SelectObject(hDC,GetStockObj
ect(NULL_BRUSH))屏蔽掉任何屏幕畫刷,否則WINDOWS程序會很快吞筮掉所有GDI資源,相當
于在屏幕設備資源中增加了無數矩形區域。 

  對于窗口拖動框的擦除操作,只需在拖動框繪制函數中將屏幕的圖形畫筆操
作方式設置為R2_XORPEN異或方式,即SetROP2(hDC2,R2_XORPEN),在拖動框繪制結束時注意
恢復,然后在窗口拖動框移動到下一個位置前,在原屏幕位置重新調用繪制函數一次將原來
拖動框擦除。下面給出筆者利用畫矩形、畫線和畫點函數實現的拖動框函數,用戶在使用時
可選擇自己喜歡的實線或虛線拖動框函數。 

  函數1為利用畫矩形函數實現的拖動實框,其特點是函數的效果高,拖動框作圖速度快
;函數2為利用畫線函數實現的拖動框,其特點是通過設置不同的畫線類型可以畫虛框也可
以畫實框;函數3為利用畫線函數實現的拖動虛框函數,特點是拖動虛框圖案變化靈活,不
足是函數效率低作圖速度慢。函數通過參數可選擇不同的拖動虛框圖案或密度。函數3參數
XY為1時與WINDOWS 3.X窗口拖動缺省虛框相同為單虛線框,如果XY參數為2 則拖動虛框為矩
齒形邊框。也可以根據需要選擇不同的拖動虛框圖案和相應畫筆和畫刷以達到不同的效果。
 

  //函數1:利用畫矩形函數實現拖動實框 

  void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy) 

  { 

   HDC hDC; 

   int oldrop2,m,k; 

   hDC = GetDC(NULL); //取得全屏幕設備描述句柄 

   oldrop2= GetROP2(hDC); //取得原來屏幕畫圖方式 

   SetROP2(hDC,R2_XORPEN); //設置異或屏幕畫圖方式 

   SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽畫刷 

   SelectObject(hDC2,GetStockObject(WHITE_PEN));//選擇畫筆 

  for (k=0;k

  xx1-=1; 

  xx2+=1; 

  yy1-=1; 

  yy2+=1; 

  Rectangle(hDC2,xx1,yy1,xx2,yy2); 

   } 

   SetROP2(hDC2,oldrop2); //恢復原來作圖方式 

   ReleaseDC(NULL,hDC2); //釋放設備描述符表 

  } 

   //函數2:利用畫線函數實現拖動實框或虛框 

  void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy) 

  { HDC hDC2; 

   int oldrop2,m,k; 

   hDC = GetDC(NULL); //取得全屏幕設備描述句柄 

   oldrop2= GetROP2(hDC); //取得原來屏幕畫圖方式 

   SetROP2(hDC,R2_XORPEN); //設置異或屏幕畫圖方式 

   SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽畫刷 

   SelectObject(hDC2,GetStockObject(WHITE_PEN));//選擇畫筆 

   for (k=0;k

   xx1-=1; 

   xx2+=1; 

   yy1-=1; 

   yy2+=1; 

   MoveTo(hDC2,xx1,yy1); 

  LineTo(hDC2,xx2,yy1); 

  MoveTo(hDC2,xx1,yy1); 

  LineTo(hDC2,xx2,yy1); 

   } 

   SetROP2(hDC2,oldrop2); //恢復原來作圖方式 

   ReleaseDC(NULL,hDC2); //釋放設備描述符表 

  } 

   //函數3:利用畫點函數實現不同圖案的拖動虛框 

  void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy) 

  { HDC hDC2; 

   int oldrop2,i,j,x1,x2,y1,y2; 

   hDC = GetDC(NULL); //取得全屏幕設備描述句柄 

  oldrop2= GetROP2(hDC); //取得原來屏幕畫圖方式 

  SetROP2(hDC,R2_XORPEN); //設置異或屏幕畫圖方式 

  SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽畫刷 

  SelectObject(hDC2,GetStockObject(WHITE_PEN));//選擇畫筆 

  for (j=0;j

  x1=xx1-j; //帶注釋部分為另一圖案 

  x2=xx2+j; 

  y1=yy1-j; 

  y2=yy2+j; 

  for (i=x1;i

   SetPixel(hdc,i,y1,RGB(255,0,0)); 

   //if (i

  for (i=y1;i

   SetPixel(hdc,x2,i,RGB(255,0,0)); 

   //if (i

  for (i=x2;i>x1;i-=2) 

   SetPixel(hdc,i,y2,RGB(255,0,0)); 

   //if (i>x1+2) SetPixel(hdc,i-1,y2-1,RGB(255,0,0));} 

  for (i=y2;i>y1;i-=2) 

   SetPixel(hdc,x1,i,RGB(255,0,0)); 

   //if (i>y1+2) SetPixel(hdc,x1+1,i-1,RGB(255,0,0));} 

   } 

  SetROP2(hDC2,oldrop2); //恢復原來作圖方式 

  ReleaseDC(NULL,hDC2); //釋放設備描述符表 

  } 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看成人小视频| 另类的小说在线视频另类成人小视频在线| 欧美老年两性高潮| 91色|porny| 91久久精品国产91性色tv| 92精品国产成人观看免费| 99re热这里只有精品免费视频| 国产成人免费视频| av电影一区二区| 97精品电影院| 欧美午夜视频网站| 在线播放日韩导航| 精品国产乱码久久久久久1区2区| 日韩一区二区视频| 国产亚洲一二三区| 亚洲精品国产一区二区精华液 | 欧美一区二区网站| 欧美一区二区福利在线| 欧美成人官网二区| 欧美国产国产综合| 亚洲综合久久久| 韩国一区二区在线观看| 99久久精品一区| 3atv在线一区二区三区| 久久综合久久综合九色| 国产精品久久久久毛片软件| 亚洲一区二区欧美激情| 韩国成人在线视频| 色综合视频在线观看| 日韩一区二区在线看片| 欧美极品美女视频| 天天操天天综合网| 成人黄色在线视频| 91麻豆精品91久久久久久清纯| 久久―日本道色综合久久 | 91一区在线观看| 欧美精品少妇一区二区三区| 久久久久久麻豆| 亚洲小说春色综合另类电影| 精品亚洲porn| 在线观看亚洲精品视频| 国产色产综合色产在线视频| 亚洲二区在线视频| 大美女一区二区三区| 日韩一级大片在线| 亚洲男人的天堂在线观看| 国产毛片一区二区| 欧美一三区三区四区免费在线看| 国产精品免费免费| 经典三级一区二区| 欧美乱妇一区二区三区不卡视频| 中文字幕成人网| 国产呦萝稀缺另类资源| 欧美裸体一区二区三区| 亚洲黄色免费网站| 99riav一区二区三区| 久久久久综合网| 日本成人超碰在线观看| 欧美性受xxxx| 亚洲精品久久久久久国产精华液| 国产美女一区二区| 久久午夜电影网| 久久99久国产精品黄毛片色诱| 欧美人狂配大交3d怪物一区| 亚洲卡通动漫在线| 91浏览器入口在线观看| 中文字幕av一区二区三区| 精品一二三四区| www精品美女久久久tv| 美腿丝袜亚洲综合| 欧美日韩国产欧美日美国产精品| 亚洲一区二区五区| 欧美色区777第一页| 亚洲观看高清完整版在线观看| 色狠狠av一区二区三区| 亚洲精品自拍动漫在线| 91丨国产丨九色丨pron| 国产精品丝袜91| 91麻豆高清视频| 午夜精品视频一区| 欧美一区二区三区播放老司机| 天天综合网天天综合色| 日韩一区二区三区免费看| 久久国产夜色精品鲁鲁99| 久久久精品综合| 99vv1com这只有精品| 亚洲小少妇裸体bbw| 欧美精品777| 精品无人码麻豆乱码1区2区| 久久精品日韩一区二区三区| 成人免费毛片app| 悠悠色在线精品| 91精品国产一区二区三区蜜臀 | 久久久噜噜噜久久人人看 | 午夜精品福利视频网站| 日韩视频一区二区在线观看| 国产乱人伦精品一区二区在线观看 | 国产精品久久毛片av大全日韩| 99v久久综合狠狠综合久久| 亚洲电影在线播放| 欧美精品一区二区精品网| 成人性色生活片免费看爆迷你毛片| 亚洲欧美在线高清| 在线播放日韩导航| 高清国产一区二区三区| 亚洲国产精品久久一线不卡| 日韩丝袜情趣美女图片| 91美女精品福利| 激情深爱一区二区| 亚洲va欧美va天堂v国产综合| 久久久久久一二三区| 欧美日韩你懂的| 成人av免费网站| 久久aⅴ国产欧美74aaa| 亚洲欧美国产77777| 久久综合九色综合97_久久久| 色综合夜色一区| 国产精品 欧美精品| 亚洲成人免费观看| 国产精品国产三级国产aⅴ原创| 欧美一区二区三区视频在线观看 | 日韩午夜在线观看视频| 国产91精品久久久久久久网曝门 | 91网站视频在线观看| 精品一区二区三区免费毛片爱 | 5858s免费视频成人| 不卡欧美aaaaa| 国产一区福利在线| 七七婷婷婷婷精品国产| 亚洲最大成人综合| 国产精品欧美久久久久无广告| 8v天堂国产在线一区二区| 一本到不卡精品视频在线观看| 国产一区视频导航| 久久成人av少妇免费| 丝袜美腿亚洲一区| 亚洲一区二区三区小说| 一区二区三区国产精华| 国产精品三级av在线播放| 久久综合精品国产一区二区三区| 91麻豆精品国产91久久久久| 在线观看免费视频综合| 91国内精品野花午夜精品 | 欧美一级高清片在线观看| 欧美日韩在线亚洲一区蜜芽| 色综合天天性综合| 99视频在线精品| 91片黄在线观看| 91国偷自产一区二区三区成为亚洲经典| 成人听书哪个软件好| 岛国一区二区在线观看| 99久久精品免费精品国产| 99re这里只有精品视频首页| 成人精品一区二区三区四区| 成人少妇影院yyyy| 99久久精品国产导航| 一本色道亚洲精品aⅴ| 色偷偷一区二区三区| 日本精品一区二区三区高清 | 91精品久久久久久久91蜜桃| 91.xcao| 久久综合九色综合欧美就去吻 | 91精品国产一区二区| 欧美一卡在线观看| 欧美mv日韩mv亚洲| 中文字幕一区在线| 一区二区三区高清| 日本视频在线一区| 国产乱码一区二区三区| 丁香六月久久综合狠狠色| 91九色02白丝porn| 日韩美一区二区三区| 国产精品人妖ts系列视频| 亚洲日本在线看| 日韩高清不卡一区| 国产91对白在线观看九色| 色婷婷狠狠综合| 欧美一级视频精品观看| 国产亚洲一区二区三区四区| 亚洲色图丝袜美腿| 麻豆精品久久精品色综合| www.在线成人| 欧美高清激情brazzers| 国产视频亚洲色图| 午夜精品久久久| 成人91在线观看| 91精品国产综合久久久久久久| 久久精品亚洲麻豆av一区二区 | 经典三级在线一区| 91片在线免费观看| 欧美精品一区二区在线播放| 国产精品三级av| 久久99日本精品| 色老综合老女人久久久| 国产日韩在线不卡| 日产国产高清一区二区三区| 成人精品一区二区三区四区 | 国产精品美女视频| 日韩av网站免费在线| 成人a区在线观看|