在 FlexGrid 控制項中指定最右側顯示的列

2021-09-07 22:54:18 字數 607 閱讀 2515

flexgrid 控制項提供了指定左側顯示列的功能。因專案的需要,要求能夠指定最右側顯示的列。

實現方法:

獲取**客戶區寬度,然後通過每列的寬度計算出水平滾動條的位置。

但是有乙個麻煩,就是垂直滾動條的問題。

首先要能判斷是否有垂直滾動條,

然後有垂直滾動條時,需要減出垂直滾動條的寬度,

但是控制項沒有提供這方面的介面。

猜想控制項的滾動條可能是兩種情況:

1。flexgrid是復合控制項,其中包含了滾動條物件。

這樣的話,用reflector檢視一下物件命名,可以通過反射訪問到內部的滾動條物件。

2。是傳統win32的滾動窗體。

這樣的話,可以通過win32 api函式來判斷。

用reflector看了一下控制項**,是第二種情況。

所以用win32 api來解決。

用api函式

lstyle = getwindowlong(hwnd, gwl_style);

獲取style然後判斷

style中是否有 ws_vscroll。

如果有就代表有 垂直滾動條。

再獲取 滾動條的最大值和最小值,如果相等則滾動條不可見。不相等則可見。

在CodeWarrior中指定堆疊大小及堆疊指標

codewarrior自動生成的工程中堆疊指標的初始化機制 開啟codewarrior中的乙個新建工程,在start12.c檔案中可以看到語句 init sp from startup desc 這是系統自動生成對堆疊指標的初始化語句。這條語句是個巨集函式,具體為 define init sp fr...

在CodeWarrior中指定堆疊大小及堆疊指標

codewarrior自動生成的工程中堆疊指標的初始化機制 開啟codewarrior中的乙個新建工程,在start12.c檔案中可以看到語句 init sp from startup desc 這是系統自動生成對堆疊指標的初始化語句。這條語句是個巨集函式,具體為 define init sp fr...

c 程式選中指定容器控制項下的相同型別控制項的方法

如果容器控制項下沒有子容器控制項,則 如下 假設要選擇的是文字框 arraylist textboxarray new arraylist foreach control c inthis controls 如果器控制項下還有子容器控制項,則 如下 public void gettextboxs c...