一区二区国产高清视频在线_真人性做爰A片免费_强伦人妻BD在线电影_亚洲熟妇无码AV_免费人成视频在线观看网站_亚洲欧美精品午睡沙发_在线观看无码的免费网站_中文字幕无码A片久久_日韩欧美国产一区精品_久久精品女人天堂av

重慶醫(yī)科大學論壇

 找回密碼
 注冊(開放注冊)
搜索
查看: 2233|回復: 4
打印 上一主題 下一主題

[軟件] win32學習初級三

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2006-12-2 14:30:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
靠,最近天天加班,忙得頭疼,連續(xù)3天沒睡好覺。一天就睡4個小時,慘!!!
   今天給大家寫點東西。
   呵呵同事光驅壞了,底下這段代碼挺長,我慢慢敲,有錯的地方大家可以提出來。呵呵
#cinlude <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPre,PSTR szCmdLine,int iCmdshow)
{
   static TCHAR szAppName[] = TEXT("窗口");
  //大家想想 上面可不可以這么些 static TCHAR* psAppName = TEXT("窗口");
  HWND hwnd;//定義窗口句炳
  MSG msg;//定義消息結構體變量
  WINDCLASS wndclass;//定義窗體類變量基于窗體的所有信息基本上封裝在這個類里
  wndclass.style = CS_HREDRAW | CS_VREDRAW;/窗體的模式定義,左右改變窗體
                                             //大小時,重新繪制客戶區(qū)
  wndclass.lpfnWndProc = WndProc;//這里是把函數地址付給類的成員變量,我向大家沒忘記
                               //函數名和類名數組名一樣是一個指針吧,
                               //還有就是不是程序運行到這個點時,啟動事件驅動函數
  wndclass.cbClsExtra = 0; //這個成員變量基本上等于被廢棄,一般很少用它,也可以將其賦
                        //值為NULL
    wndclass.cbWndExtra = 0;//同上,在以后我會給大家舉例子說明如何使用上面的成員變量
                         //暫且把他們認為是保留字
  wndclass.hInstance = hInstance; // 程序運行時唯一標志符
  wndclass.hInon = LoadIcon(NULL,IDI_APPLICATION);//這里是控制窗體左上角顯示的小圖
                //表。這里使用的是默認圖表,如果想用自己做的,可以把第二個參數改變
                //同時第一個參數相應的改變?yōu)閔Instance
    wndclass.hCursor = LoadCursor(NULL,IDI_ARROW)//這里是設置光標圖案,其他同上。
  // 窗體客戶區(qū)背景色的設置 ---- 白色
  wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
   wndclass.lpszMenuName = NULL; //菜單設置-------無
  wndclass.lpszClassName = szAppName; //類名的設置

  //下面就是注冊窗口類,說白了 就是想系統申請資源
  if(!RegisterClass(&wndclass))
   {
         MessageBox(NULL,"123","123456",NULL);
   }
   // 接下來就得創(chuàng)建窗體
  hwnd = CreateWindow(
                            類名,
                窗口標題,
                窗口樣式,
                橫向坐標起始點,//就是窗口左上角在屏幕中的位置
                縱向坐標起始點,//就是窗口左上角在屏幕中的位置
                橫向坐標末端點,//就是窗口右下角在屏幕中的位置
                縱向坐標末端點//就是窗口右下角在屏幕中的位置
                                   );
          // 顯示窗口
          ShowWindow(hwnd,iCmdShow);
          // 更新窗口
      UpdateWindow(hwnd);
          //消息循環(huán)(略)
      //程序返回
}
呵呵 省略不少東西,不過大致的意思大家應該能看懂,個人感覺注釋夠詳細了。
上面的代碼中,我們要的關鍵東西就是 hInstance,和 hwnd ,只要我們擁有這兩個變量,我們就可以在其他的程序里對上面的資源為所欲為
程序的主體時消息循環(huán),別的只是資源的初始化
消息循環(huán)其實是個“死”循環(huán)。除非我們單擊關閉按鈕,向系統發(fā)送關系信息,這是GetMesage函數的返回值是假,這樣程序就結束。那么程序如何來處理消息
消息循環(huán)如下
if(GetMessage(&msg,NULL,0,0))
{
     TranslateMessage(&msg);//這里我們分析與解析消息
     DispatchMessage(&msg); //這里我們發(fā)送消息
   // 我們通過lpfnWndProc 來調用WndProc函數,因為在上面我們把函數WndProc的地址賦
   //值給lpfnWndProc ,所以這里就可以直接用lpfnWndProc來替代函數名WndProc,注意這
   //里沒有宏的概念,只是簡單的指針操作。
}
下面是消息處理函數。更多人看到的是用switch,其實多一樣,個人感覺這樣更便于理解,有人說,你這樣做不對,很有可能兩個消息的值是一樣的,如果這有這種情況,用switch也是錯的,因為將會有個消息無法得到啟動
LRESULT CALLBACK WndProc(HWND,UINT msg,WPARAM,LPARAM)
{
      //略
    if(msg == WM_CREATE)
       {
             //
             調用CreateWindow函數成功時,啟動這個消息
             return ;
       }
       if(msg == WM_PAINT)
       {
            //當窗體的一部分無效時,我們會自己去觸發(fā)這個消息,重新繪制窗口,否則無效區(qū)域
       //將是一片空白
            return ;
        }
       if(msg == WM_DESTROY)
       {
             //程序結束時我們觸發(fā)這個消息
             return;
       }
}
我靠 終于講完這篇,不知道兄弟們有沒有理解,呵呵,下次咱做個能跑起來并且能做點東西的東東
2#
發(fā)表于 2006-12-3 21:07:33 | 只看該作者
如果想讓別人跟著你的教程來學習,就得更多的考慮初學者的狀態(tài)和學習過程!

另外:2怎么沒看到?
3#
 樓主| 發(fā)表于 2006-12-4 19:32:17 | 只看該作者
呵呵 師兄 2 早就寫過了 至于教程嘛 ,我沒有,
      不過我寫的不是很深吧,初學者應該能看懂 ,還有啊 上面的我感覺寫的已經是超級簡單了,我當初學習win32的時候,可沒有這么詳細解釋的代碼.
       win32的入門篇應該是這樣,至于其他的一些基礎鋪墊我感覺可以自己去看書,我沒必要寫出來.多是死的東西.自己稍微看看就夠了
    至于教程我準備先自己寫著,然后在做遺漏補充.等過幾天我給大家推薦一本書,自己參考著看
    師兄說考慮初學者的狀態(tài),這個我不太好把握.我想初學者迷惑的地方應該是程序的運行流程,這個我下次寫的時候給補上,其他的沒什么難的地方
4#
發(fā)表于 2006-12-9 20:28:56 | 只看該作者

hehe

我來過了
哥哥下次給講一下鉤子函數吧
5#
 樓主| 發(fā)表于 2006-12-10 10:45:43 | 只看該作者
工作找到沒有
這個等我元旦放假寫,最近挺忙活
您需要登錄后才可以回帖 登錄 | 注冊(開放注冊)

本版積分規(guī)則

手機訪問本頁請
掃描左邊二維碼
本網站聲明
本網站所有內容為網友上傳,若存在版權問題或是相關責任請聯系站長!
站長電話:0898-66661599    站長聯系QQ:12726567   
站長微信:hainanok
請掃描右邊二維碼
www.myujob.com

小黑屋|手機版|Archiver|重慶醫(yī)科大學論壇 ( 瓊ICP備10001196號-2 )

GMT+8, 2025-11-19 04:14 , Processed in 0.704257 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 重慶醫(yī)科大學論壇校園招聘

快速回復 返回頂部 返回列表