Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


41497 / 76735 ←次へ | 前へ→

【40318】Re:SetWindowLongPtrを使うには?
発言  Blue  - 06/7/11(火) 14:00 -

引用なし
パスワード
   >Private Declare Function GetWindowLongPtr Lib "user32" _
>   Alias "GetWindowLongA" _
>   (ByVal hWnd As Long, _
>   ByVal nIndex As Long) As Long
まず、Aliasの関数名を変えないとだめです。
(Libに指定した)user32.dllの(Aliasにしていした)GetWindowLongAという関数を
(Declareで指定した)GetWindowLongPtrという関数として使いますという宣言文になります。

ついでに
>Private Declare Function SetWindowLongPtr Lib "user32" _
>   Alias "SetWindowLongA" _
>   (ByVal hWnd As Long, _
>   ByVal nIndex As Long, _
>   ByVal dwNewLong As Long_PTR) As Long
のLong_PTR型はVBAにはない型です。これは64ビット環境と32ビット環境で大きさが変わるようなつくりになっています。
よって32ビット環境では、Long型でよいはず。


WinAPIを使いこなすには多少なりともC言語の知識があったほうがよいです。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_Win32_GetWindowLongPtr.asp
LONG_PTR GetWindowLongPtr(
 HWND hWnd, // ウィンドウのハンドル
 int nIndex // 取得する値のオフセット
);

Private Declare Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongPtrA" _
  (ByVal hWnd As Long, ByVal nIndex As Long) As Long

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_Win32_SetWindowLongPtr.asp
LONG_PTR SetWindowLongPtr(
 HWND hWnd,      // ウィンドウのハンドル
 int nIndex,     // 変更する値のオフセット
 LONG_PTR dwNewLong  // 新しい値
);

Private Declare Function SetWindowLongPtr Lib "user32" Alias "SetWindowLongPtrA" _
  (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

かな。試していませんけど。

0 hits

【40304】(Not WS_SYSMENU)ってどういう意味です... mutu 06/7/11(火) 10:18 質問
【40305】Re:(Not WS_SYSMENU)ってどういう意味で... Statis 06/7/11(火) 10:26 発言
【40306】Re:(Not WS_SYSMENU)ってどういう意味で... mutu 06/7/11(火) 10:35 質問
【40308】Re:(Not WS_SYSMENU)ってどういう意味で... Blue 06/7/11(火) 10:53 発言
【40310】Re:(Not WS_SYSMENU)ってどういう意味で... ひげくま 06/7/11(火) 11:02 発言
【40311】Re:(Not WS_SYSMENU)ってどういう意味で... ひげくま 06/7/11(火) 11:05 発言
【40309】Re:(Not WS_SYSMENU)ってどういう意味で... ichinose 06/7/11(火) 10:59 発言
【40314】Re:(Not WS_SYSMENU)ってどういう意味で... mutu 06/7/11(火) 12:36 お礼
【40316】SetWindowLongPtrを使うには? mutu 06/7/11(火) 13:47 質問
【40318】Re:SetWindowLongPtrを使うには? Blue 06/7/11(火) 14:00 発言
【40322】Re:SetWindowLongPtrを使うには? mutu 06/7/11(火) 15:16 質問
【40323】Re:SetWindowLongPtrを使うには? Blue 06/7/11(火) 15:22 発言
【40324】Re:SetWindowLongPtrを使うには? mutu 06/7/11(火) 16:23 お礼
【40325】Re:SetWindowLongPtrを使うには? Blue 06/7/11(火) 16:46 発言
【40330】Re:SetWindowLongPtrを使うには? mutu 06/7/11(火) 17:21 お礼

41497 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free