以下代碼pb9運行沒有問題,pb11 GetClientHwnd(lst_Client,lst_TC_ITEM.lParam,28)時出現問題,原因是TabCtrl_GetItem(il_HWND,TCM_GETITEM,ai_tabIndex - 1,Lst_TC_ITEM),
lst_TC_ITEM.lParam為0,pb9 lst_TC_ITEM.lParam是有值的
FUNCTION ulong TabCtrl_GetItem (ulong hwnd,ulong wMsg,ulong wParam, ref st_TC_ITEM lParam) LIBRARY "user32.dll" ALIAS FOR "SendMessageW"
Function long GetClientHwnd(REF st_tcclient Destination, long Source, long Size) library "kernel32.dll" Alias For "RtlMoveMemory;ANSI"
ULong ll_hImageList,ll_ImageIndex,ll_IconHandle
ULong ll_width,ll_height
st_TC_ITEM lst_TC_ITEM
IF ai_tabIndex < 1 THEN
RETURN 0
END IF
ll_hImageList=Send(il_HWND,TCM_GETIMAGELIST,0,0)
lst_TC_ITEM.Mask= TCIF_IMAGE + TCIF_TEXT + TCIF_PARAM
lst_TC_ITEM.psztext = LocalAlloc(0,255)
lst_TC_ITEM.cchtextmax = 255
lst_TC_ITEM.lParam=123
TabCtrl_GetItem(il_HWND,TCM_GETITEM,ai_tabIndex - 1,Lst_TC_ITEM)
ist_TabPages[ai_tabindex].TabText = String(lst_TC_ITEM.psztext,'address')
LocalFree(lst_TC_ITEM.psztext)
ll_ImageIndex=lst_TC_ITEM.iImage
IF ll_ImageIndex >= 0 THEN
ll_IconHandle= ImageList_GetIcon(ll_hImageList,ll_ImageIndex,1)
ImageList_GetIconSize(ll_hImageList,ll_width,ll_height)
END IF
ist_TabPages[ai_tabindex].ImageHandle = ll_IconHandle
ist_TabPages[ai_tabindex].ImageWidth = ll_width
ist_TabPages[ai_tabindex].ImageHeight = ll_height
st_TCClient lst_Client
GetClientHwnd(lst_Client,lst_TC_ITEM.lParam,28)
ist_TabPages[ai_tabindex].Enabled = IsWindowEnabled(lst_Client.HWND)
LONG ll_Loop,ll_Count
ll_Count = UpperBound(iuo_Requestor.Control)
FOR ll_Loop = 1 TO ll_Count
IF Handle(iuo_Requestor.Control[ll_Loop]) = lst_Client.HWND THEN
ist_TabPages[ai_tabindex].Visible = iuo_Requestor.Control[ll_Loop].Visible
EXIT
END IF
NEXT
RETURN 1
uj5u.com熱心網友回復:
哎,pb末路uj5u.com熱心網友回復:
高手啊速來救命uj5u.com熱心網友回復:
PB11要命啊uj5u.com熱心網友回復:
試試FUNCTION ulong TabCtrl_GetItem (ulong hwnd,ulong wMsg,ulong wParam, ref st_TC_ITEM lParam) LIBRARY "user32.dll" ALIAS FOR "SendMessageW;Ansi"
Function long GetClientHwnd(REF st_tcclient Destination, long Source, long Size) library "kernel32.dll" Alias For "RtlMoveMemory;ANSI"
uj5u.com熱心網友回復:
SendMessageW 早試過了也不行啊uj5u.com熱心網友回復:
誰來拯救我啊,快瘋了uj5u.com熱心網友回復:
pb 這是讓人懊惱啊,老是些莫名其妙的錯誤哎,好懷念delphi,搞急老子把整個專案推倒拿delphi重寫一遍,哎,
uj5u.com熱心網友回復:
lst_TC_ITEM.lParam 這個呼叫有沒有值?這個是什么啊?在哪里使用生成的uj5u.com熱心網友回復:
你用delphi或c++封裝個標準的dll給pb呼叫就是了啊轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/49781.html
標籤:API 調用
