天天看點

控件命名和setparent函數——機房遇到問題(一)

從學生到機房其實變化還是很大的,首先體會到的是i+1的模式,在學生的基礎上,機房是有一點難度的,可是隻要“跳一跳”卻是可以拿得到。其實本來想寫不寫關于這塊的部落格呢?我是這麼晚才進行這塊的,寫出來也是和别人的差不多,但是想到米老師說的:寫出來的就是用文字整理你的生命,是我自己的成長的記錄,是以決定,以後哪怕是晚了,也要寫,這是我自己的。 說一下遇到的問題吧,原來敲學生的時候,是有源代碼的,是以命名沒有問題。而且也沒有過多的關注,而現在呢?窗體控件的名字必須自己起,這就是首先的一個問題,雖然我們可以仿照學生的格式命名,但是起名的時候這首先就考了一下自己的英文水準,是以學英語是重中之重。 第二就是大家都遇到的如何在MDI主窗體上添加控件的問題,首先要在MDI主窗體上加載picture控件,但是直接用picturebox之後,子窗體是不能顯示在上層的,具體原因可以參考九期師哥 卓家進的部落格。而解決的方法就是用到setpicture函數。這個函數可以在VB6.0的API函數浏覽器裡面找到,詳細了解參考 setparent百度百科。 使用方法: 1.聲明。可以用vb6.0API浏覽器。語句Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long。 2.聲明之後,如果想要在菜單的click事件中觸發這個事件那麼隻要添加以下代碼: SetParent 要顯示在上方的窗體名.hWnd ,父窗體名.hWnd 這樣就可以在picturebox之上顯示主窗體了,估計大部分同學們都是這樣解決了,但是我的确還是出現了問題以下是截圖:

控件命名和setparent函數——機房遇到問題(一)

沒有單機菜單前

控件命名和setparent函數——機房遇到問題(一)

單機菜單後

控件命名和setparent函數——機房遇到問題(一)

用滑鼠拉開後

在單機菜單之後可以看到在picture之後又藍條顯示出,而且可以用滑鼠拉開,确實是希望顯示在picturebox上面的窗體,但是确不顯示标題欄。這不是我們想要的結果,為何會這樣呢?因為picture的Align屬性設定為1,靠上,而選擇其他屬性會分别顯示在主窗體的下、左或右,但均不能顯示出完整的窗體。

       解決這個問題的方法是什麼呢?

       有兩種:1.将子窗體的BorderStyle屬性設定為1——Fixed Single。固定窗體大小,犧牲了窗體的可調節性,如果不要求窗體可以調節大小可以采取,并且相對簡單。

       2.在顯示窗體的觸發事件中添加一下代碼

       對應子窗體名.width=數字

       對應子窗體名.height=數字

這種方法并不空難,隻不過是比較繁瑣,并且不犧牲窗體大小的可調節性。

繼續閱讀