• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我住包子山

            this->blog.MoveTo("blog.baozishan.in")

            #

            關于Up/Down控件(spin control)使用方法的一點小心得

            image    學用純SDK寫win32程序,資料有一個英文版Windows Programming電子書,以及MSDN,用到了Up/Down控件讓用戶輸入數據,同時也提供了Edit box.兩者的同步是否會有問題呢?
              嘗試了半天,終于有了點結果:
            1、初始化控件,對控件句柄發送UDM_SETRANGE32消息,進行范圍的初始話。UDM_SETPOS32消息設置初值。
               
            image
            2、關聯Edit Box 控件,這個我弄了半天才明白,首先要在資源編輯中的對話框編輯界面,設定Tab控件的順序(格式->Tab鍵順序)。將Edit Box的序號設置成Up/Down控件序號減一,設定Up/Down的屬性Auto Buddy為True,Set Buddy Integer為true。
            3、現在已經能夠正常的使用Up/Down功能了。
              可是如果不想用控件關聯,而是自己設定邏輯怎么辦呢?幾個小時之前我不會關聯的方法,想要努力實現手動維護Edit box的功能。最后終于有了些教訓,得到了點心得:
              在Up/Down的父窗口(一般是對話框)的消息處理函數中,對WM_VSCROLL消息做一個處理,當lParam與Up/Down的窗口句柄相等時,對Up/Down的操作結束 ,其中wParam中的高位部分是Up/Down的值,用這個值來更新Edit Box。
            WM_VSCROLL nScrollCode = (int)LOWORD(wParam);
              nPos = (short int)HIWORD(wParam);
              hwndScrollBar = (HWND) lParam;

              今天我的教訓是使用了WM_NOTIFY的消息,處理UDN_DELTAPOS的通知,lParam是一個結構:NMUPDOWN,通過這個結構來更新Edit box,因為這個通知不等操作結束就已經發出,并且這個結構體中有當時的位置以及變化量,更新時候還需要將當時位置加上變化量。這樣的更新就會出現一定的問題,有時候pos已經到了設定好的范圍邊界,pos加上變化量就會超出邊界,還要繼續判斷,效率等等問題就出現了,而且十分麻煩。所以最好使用關聯的方法,如果有特殊要求就用WM_VSCROLL響應,千萬不要使用UDN_DELTAPOS,白花功夫,呵呵。就寫到這里.

            今天是除夕了,祝所有程序員朋友新春快樂!!

            posted @ 2008-02-06 02:14 Gohan 閱讀(8091) | 評論 (1)編輯 收藏

            周回顧[1]

            算是第二周了,感覺時間過得很快,馬上就除夕了,回顧一下:

               本周學習:初學python,Dive into Python看完了第五章,真的是很有特點,過完年回來我會寫一些總結。Fedora8的adsl連接似乎不怎么穩定,Pidgin我給它升級成了最新版,有一篇Fedora7安裝后的配置像我這樣的Linux初學者值得去參考一下。寫的WIN32的一個提醒程序,只用了SDK,完全沒用MFC,現在大致功能可以實現,參考了兩篇Code Project的文章,An LED time and value display control and Simple Reminder Application 以及MSDN

            本周收藏網址:

            Gohan‘s Reminder

            Sprout Builder,生成flash的Gadget,支持圖片,文本,rss,目前正在內測,我正在關注。
            畫動作人物鉛筆畫,圖文教程。學習吉他,視頻教程。讀書建議:來自褪墨發起的活動,寒假還是要充充電的。

               這次的冰凍災害實在嚴重,尤其是貴州省,愿受災害影響的人們早日度過難關,上帝保佑吃完了飯人民。馬上要過年了,這位我們國家的骨鯁之士可能很難跟家人團聚(不翻墻會撞墻),我希望他能平安過年,家人早日團聚,遺憾的是我不能為你做什么事情。世界需要愛,最近老羅發起了一個對黑磚窯受難者家屬的捐助活動,許許多多人響應了,因為有支付寶支付的方法,很方便,我把平時偶爾買彩票的錢捐在這里,數額太小不值一提,不過希望每個有能力捐助的人都能出一份心意,這樣也就夠了。想要幫助別人的人們,推薦你們閱讀這篇文章留意身邊的異常現象-自救與救人,有時候要會仔細思考留意才能解救他人,或使自己得救。

               谷歌中國這次推出了春運交通圖算是個大好事,及時這樣也不能彌補久錯,仍然算是連累了Google總公司,雖然Google也有瑕疵,但是我仍非常喜歡Google,光是使用它的Gmail(快捷鍵一覽)跟Reader(快捷鍵一覽)都那么的方便。

               本周玩的東西也不少:

            看了長江七號,不賴,希望周星星的干女兒能繼續成長,好在龍珠里面演好Gohan這個角色。

            火影387,鼬不該這樣自私的,一定有苦衷。兩個跟記憶有關小游戲令腦貴庚(我測出來是20,太準了),記憶力大考驗,合理使用標記,就可以打完。

               其他有趣圖文:二戰期間在華美軍如何分辨日本人80后都用過的小學生作文百寫不爽的必殺句有趣的C語言問題(強烈推薦),情侶用的血條衫挑戰你的常識

               有趣視頻:火影的cosplay紐約火車站靜止一族(強烈推薦)。

               這周就到這兒吧。下周繼續

             

            posted @ 2008-02-04 21:34 Gohan 閱讀(467) | 評論 (2)編輯 收藏

            每周回顧(0)

            22號考完的試,23號晚上火車,第二天回到蘭州.
            回來幾天基本上就是待家看書,潘愛民的COM原理與應用.還有一本COM與COM+從入門到精通,都是圖書館借的,偶爾看那么一點.
            翻譯了一篇Codeproject的小文章,關于VC控件子類化的,做為練習..草草閱讀Codeproject的入門文章若干篇,有點小收獲,慢慢總結文字吧.
            目前正在用VC,SDK嘗試寫一個提示上機休息的timecount類型的軟件,主要是我的表有這個功能,想做成能夠顯示LED風格時間的小玩具.SDK寫出來應該會很小吧,寫了一半,現在還在學習怎么用HDC..估計下周能寫好吧.

            回來忍受不了電腦的速度,上次重裝到現在差不多一年多了吧.裝了不少有的沒的很多東西,只好重新裝了一個xp,順便裝了個fedora8,算是wzc推薦的,偶爾可以換換口味..xp用了個ubuntu美化包. a.JPG

            今天查了考試成績,這回分出的很快,分數從60多到80多,各有分布,還好都沒掛,充分證明我們學校總評成績中作業以及點名只占極小比例甚至不占.

            娛樂方面,玩了幾個小游戲,U148網推薦的短褲小子,COPY不走樣,靈異行者推薦的passage(比較另類吧).

            吃的方面,吃了不少,今天去阿西亞吃了羊排和羊羔肉吃得挺飽.

            晚上準備看一個The Man from Earth..這周就是這樣..下周繼續

            Powered by Zoundry

            posted @ 2008-01-28 23:19 Gohan 閱讀(174) | 評論 (0)編輯 收藏

            翻譯習作:Create your own controls - the art of subclassing 子類化,繼承公共控件

                 摘要: Create your own controls - the art of subclassing By Chris MaunderAn introduction to subclassing the Windows common controls using MFC Introduction 程序員們可以用許多windows通用控件提供的功能方便的編程,這些控件從list到button甚至...  閱讀全文

            posted @ 2008-01-25 00:02 Gohan 閱讀(1477) | 評論 (0)編輯 收藏

            隨便說說,寫在2007年末

                今天是表哥生日,也是2007最后一天..祝愿大家新年快樂..順便小小總結一下,最近讀書筆記什么的文章都沒有發,因為有段時間飄飄的沒了魂,以后會繼續慢慢的發的.請高手多多幫助指點.
            總結一下2007,總結一下自己:
                我,87年生,已經滿20歲了,沒什么成就,愛好編程,會一些C/C++,Win32,C#之類的東西,生活還是沒規律,還是一個人..
                今年初姥姥病逝了,比較悲痛..其他還好,十一同好友chz去了一趟長沙,好友wzc在那讀書,我們都愛好tech..
                在西安讀大三,學CS,在學校沒學太多東西,自己隨便看看一些編程書籍..今年參加過兩次acm區域賽,都是做出幾個簡單題,做題速度慢,都沒拿上牌,算法基礎還有很大提升空間.今年看了幾本書,win32多線程,win32核心編程看了大半,the old new thing,vc++技術內幕重新看了個大概,算法導論翻了一些,SQL語言的電子書,還有一些電子書都淺嘗輒止了一下,有本win shell programming的電子書相當不錯,看了一半,以后有機會還會看的..我現在對win32編程還是有很大興趣,只是水平很爛,五一寫了一個寢室查網速的軟件用了MFC跟winpcap庫,基本能勉強應用.覺得現在很多應用C#更容易用,不過shell extension估計還是c++好點,hook這些不知道別的語言怎么..學的內容還有很多呢..希望能得到前輩指點
                年中開始接觸豆瓣這樣的web2.0網站,發現很不錯,后來又用飯否,還有就是google reader,感覺網站程序原來也很神奇,以前對網站編程不怎么感興趣以為不過是asp,php而已,好像現在很多web2.0網站都會用到python等動態語言,有可能還用c++做算法,可惜我C++只是懂個皮毛,python只了解簡單語法寫過很少代碼..希望明年能再觸類旁通一些..
                想起10年前的我,擁有我的第一臺電腦有了1年(96年有的第一臺電腦),比較遺憾沒有老師指點,只能夠自己買一些雜志報紙學學,玩了好幾年,只是會了些基本dos操作,win95應用,一些亂七八糟的應用軟件都用過不少,那時候覺得寫軟件的人可真nb啊,記得那時候一個圖標大戰的小程序都覺得他很有趣.上初中接觸到了現在的好友wzc跟chz,我們便在計算機方面相互交流,進步能快一點,學了一點vb應用,不過都沒怎么練過手..之后是高中,轉眼就過去了..回想過去的計算機之路,覺得大半時間是打了游戲,其他時間用來學習了它的周邊,這10年大概只能算是個啟蒙,希望我在以后的路上能和朋友們一起進步一起分享知識.
                還想說很多廢話,不過還是不說了..以后還是多說些實在的技術周邊
            07年:<天堂><長沙><WinSock><VIM><ACM><侄子><彭坦><dota><Google><*魚><二十><尾巴>....很多很多..

            今天晚上放了些炮,幾個同班同學一起,炮在空中爆炸,看到難得見到的明亮星星,它一定是預示著未來的光明,但是它仍然離我很遠...我希望能在新的一年里有所改變.

            嗨皮牛業

            posted @ 2007-12-31 23:28 Gohan 閱讀(355) | 評論 (2)編輯 收藏

            VC++編程內幕學習心得(2)--下

                 摘要: 接著上回開始 書上的第二個例子 直接貼我略加修改的代碼,后面附有注釋: void Cfont2View::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) {//想說的是OnPrepareDC在每次調用OnDraw之前調用,可在里面進行初始化的一些操作     CRect clientRect;     ...  閱讀全文

            posted @ 2007-12-08 18:04 Gohan 閱讀(2028) | 評論 (2)編輯 收藏

            安裝界面亂碼的罪魁禍首

            image

            昨天裝sql server 2005,一進去安裝界面就亂碼了,找來找去發現是AppLocale的問題,有一個微軟社區的解決方法,于是我刪了AppLoc.tmp..發現安裝界面正常了,結果安裝過程中仍然偶爾冒出一些亂碼..也沒有多管..裝完以后發現開始菜單是亂碼,添加刪除程序中也是亂碼..雖然不影響太多使用,還是很不爽..

            早上使用curl讀取一個fanfou的rss,發現出現的也是亂碼,不知道怎么搞的,卸載掉Applocale也沒用,還是亂碼...不過重裝sql server這些的過程就再不出現亂碼了...

            問題仍待解決

            posted @ 2007-12-05 10:05 Gohan 閱讀(2853) | 評論 (3)編輯 收藏

            VC++編程內幕學習心得(2)--上

                 摘要: 第六章 GDI,字體,位圖 第五章的例子就有簡單的CDC類型的應用 這次更加詳細的總結了設備環境類型及其應用常用類型CClientDC和CWindowDC,算做顯示設備函數 CDC::GetClipBox(LPRECT lpRect)能夠獲取當前操作dc可見的區域矩形吧,我大概這樣子理解.當然,映射模式不同的情況得到的值也不一樣,是邏輯坐標單位 只有改寫視圖類的OnPaint類時才會用CPaint...  閱讀全文

            posted @ 2007-11-26 21:46 Gohan 閱讀(2557) | 評論 (0)編輯 收藏

            vc++技術內幕學習心得1

            這篇心得關于技術內幕第五章,比較的基礎..
            我是VC++的初學者
            vc++
            技術內幕這本書我是去年暑假開始看的,那時候剛學windows編程,雖然之前用過c#,vb,不過都沒怎么練習,這本書我大概看了前面的80%,不過都未曾動手,近日打算從頭練習一下,在這里記些筆記
            第五章第一個例子很簡單
            一個單文檔MFC應用程序,View類中一個CRect類型變量保存矩形的信息,一個int型保存矩形顏色的屬性
            WM_LBUTTONDOWN
            響應函數判斷單擊左鍵時鼠標位置是不是在之前那個矩形區域內,是的話變換矩形顏色的屬性,而且命令矩形區域重繪..
            OnDraw()
            中用dc選取矩形顏色,繪制矩形的內切橢圓

            應用的函數有:

            virtual CGdiObject* CDC::SelectStockObject(

            int nIndex

            );//選取顏色,這里只選畫刷大概有如下畫刷
            BLACK_BRUSH DKGRAY_BRUSH GRAY_BRUSH HOLLOW_BRUSH LTGRAY_BRUSH NULL_BRUSH WHITE_BRUSH
            BOOL CDC::Ellipse(LPCRECT lpRect);//
            畫矩形對應的內切橢圓
            BOOL CRECT::PtInRect(

            POINT point 

            ) const throw( );//判斷point是否在矩形中

            注意一點就是CView::OnLButtonDown(UINT nFlags, CPoint point)
            這里的Point坐標是Viewclient坐標,如果需要全局坐標需要轉換

             

            第二個例子關于映射模式

             

            不同的映射模式,對應的坐標是有區別的,而且他們的邏輯單位比例都不同

             

            固定比例的映射模式有

             

            Mapping Mode

            Logical Unit

            MM_LOENGLISH

            0.01 inch

            MM_HIENGLISH

            0.001 inch

            MM_LOMETRIC

            0.1 mm

            MM_HIMETRIC

            0.01 mm

            MM_TWIPS

            1/1440 inch

             

            可變比例的映射模式

            MM_ISOTROPIC and MM_ANISOTROPIC

            我自己寫了一個Demo看了一下,好像只有MM_ANISOTROPICMM_TEXTx軸左向右,y軸上到下,DC原點為0,0

            其他的映射模式x軸一樣,y軸變成了從下至上,DC原點還是0,0

            CDC的幾個函數這里有必要說說
            virtual int CDC::SetMapMode(
               int nMapMode
            );
            int CDC::GetMapMode() const;
            設置/讀取DC的映射模式

             

            virtual CSize CDC::SetWindowExt(
               int cx,
               int cy
            );//
            設置窗體范圍

            virtual CSize CDC::SetViewportExt(
               int cx,
               int cy
            );//
            設置視口范圍

            virtual CPoint CDC::SetViewportOrg(
               int x,
               int y
            );//
            設置(0,0)點的位置

            窗體范圍和視口范圍的設置會影響可變比例映射
            可變比例映射的x,y計算方法參看下面的公式

            x scale factor = x viewport extent / x window extent   

            y scale factor = y viewport extent / y window extent   

            device x = logical x* x scale factor + x origin offset   

            device y = logical y* y scale factor + y origin offset

            CDC成員函數的參數大都是用邏輯坐標,但是CWnd的成員卻以設備坐標為參數

            但是CDC成員中有函數

            LPtoDP,將邏輯坐標轉換為設備坐標

            void LPtoDP( LPPOINT lpPoints, int nCount = 1 ) const; void LPtoDP( LPRECT lpRect ) const; void LPtoDP( LPSIZE lpSize ) const;
            DPtoLP,剛好相反

            void DPtoLP( LPPOINT lpPoints, int nCount = 1 ) const; void DPtoLP( LPRECT lpRect ) const; void DPtoLP( LPSIZE lpSize ) const;

            第三個例子關于滾動條

            文檔視圖的工程建立向導中可以讓View繼承自CScrollView,使得View帶有滾動條

            OnInitialUpdate函數在視圖建立后,OnDraw執行之前執行,所以對于滾動條的初始化可以放在這個函數中

            void CScrollingViewWindowView::OnInitialUpdate()

            {

                CScrollView::OnInitialUpdate();

                CSize sizeTotal;

                // TODO: 計算此視圖的合計大小

                sizeTotal.cx = 20000; //20cm

                sizeTotal.cy = 30000; //30cm

                CSize sizePage(sizeTotal.cx/2,sizeTotal.cy/2);

                CSize sizeLine(sizeTotal.cx/50,sizeTotal.cy/50);

                SetScrollSizes(MM_TEXT, sizeTotal,sizePage,sizeLine);

            }

            雖然是初始化了滾動條,但是不能夠使用快捷鍵(上下左右,pagedown啥的),需要手動重載afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);

            需要用到CWnd::OnVScroll, CWnd::OnHScroll,分別控制縱向與橫向兩個滾動條

            nSBCode

            Specifies a scroll-bar code that indicates the user's scrolling request. This parameter can be one of the following:

            ·         SB_BOTTOM   Scroll to bottom.

            ·         SB_ENDSCROLL   End scroll.

            ·         SB_LINEDOWN   Scroll one line down.

            ·         SB_LINEUP   Scroll one line up.

            ·         SB_PAGEDOWN   Scroll one page down.

            ·         SB_PAGEUP   Scroll one page up.

            ·         SB_THUMBPOSITION   Scroll to the absolute position. The current position is provided in nPos.

            ·         SB_THUMBTRACK   Drag scroll box to specified position. The current position is provided in nPos.

            ·         SB_TOP   Scroll to top.

                                                                   by gohan 11.23

            posted @ 2007-11-23 16:37 Gohan 閱讀(1320) | 評論 (0)編輯 收藏

            new beginning

            這個月南京和成都兩次比賽分別只做出一道題跟兩道題目,都排到了50名開外,都是差一道題目拿到銅獎,不過仍然感到了自己編碼能力的緩慢提升.現在抓緊時間慢慢補課,win32編程我會繼續的學習,這陣子在玩VIM,好像有點意思的東西

            posted @ 2007-11-20 14:37 Gohan 閱讀(221) | 評論 (0)編輯 收藏

            僅列出標題
            共16頁: First 7 8 9 10 11 12 13 14 15 Last 
            97精品伊人久久大香线蕉app| 伊人久久久AV老熟妇色| 久久精品亚洲日本波多野结衣| 久久久国产视频| 亚洲欧美伊人久久综合一区二区| 亚洲精品国产自在久久| 国产精品久久久久久久久软件 | 久久性精品| 久久国产香蕉视频| 久久久久婷婷| 久久久久久久综合狠狠综合| 中文字幕精品久久| 久久久久高潮毛片免费全部播放| 精品国产乱码久久久久久1区2区| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 亚洲AV无码成人网站久久精品大| 亚洲欧美日韩久久精品第一区| 九九精品99久久久香蕉| 91精品观看91久久久久久| 少妇久久久久久被弄到高潮| 久久人人爽人人爽人人片AV麻烦| 久久久精品人妻一区二区三区四| 欧美日韩中文字幕久久伊人| 无码任你躁久久久久久久| 人妻少妇久久中文字幕| 国产精品久久久久久久午夜片| 免费精品久久久久久中文字幕| 久久久久亚洲精品日久生情| 久久九九青青国产精品| 99精品国产免费久久久久久下载| 国产亚洲美女精品久久久久狼| 久久国产视屏| 久久国产精品久久久| 怡红院日本一道日本久久 | 久久久久国产一区二区| 99久久国产亚洲综合精品| 久久婷婷综合中文字幕| 久久婷婷国产剧情内射白浆| 久久亚洲国产午夜精品理论片| 久久天天躁夜夜躁狠狠躁2022| 99热成人精品免费久久|