ab.com コミュニティ https://www.activebasic.com/forum/ |
|
ツールバーでアクセス違反 https://www.activebasic.com/forum/viewtopic.php?t=2868 |
ページ 1 / 1 |
作成者: | 水波形 [ 2012年2月07日(火) 15:55 ] |
記事の件名: | ツールバーでアクセス違反 |
お世話になっております。 今回、テキストエディタのようなものを作っていて、そこにツールバーをつけようと思っているのですが、なぜかアクセス違反が出てしまします。 http://www.activebasic.com/help_center/ ... index.html を参考にしているのですが、なぜか動きません…… エラーを起こして表示されるのは、RADツールが自動で作成してくれる場所で、DestroyObjects()の部分の「End Sub」でした。(Callback.sbp) デバグを繰り返しているうちに コード: hToolbar=CreateToolbarEx(hMainWnd,WS_CHILD or WS_VISIBLE,ID_TOOLBAR,4,GetModuleHandle(0),IDB_BITMAP1,tbb,5,0,0,16,15,Len(tbb[0]))でエラーが出てるというところまではわかったのですが、そこから先がわかりません。 ビットマップを次の章(http://www.activebasic.com/help_center/ ... index.html)のモノクロのものに差し替えると動いたりします。 今やりたい事は、フラットツールバーで、最初からモノクロではなくカラーのツールバーを表示させ、オンマウスでカラーのツールバーの浮き出しをしたいのです。 まとめると、 カラーのツールバー→オンマウス→カラーのツールバー(オンマウスした部分が浮き出る) 質問が曖昧(貧困なボキャブラリーのせいですが……)で申し訳ないですが、 お分かりの方がいらっしゃいましたらご教示ください。 よろしくおねがいします。 |
作成者: | たかせ [ 2012年2月07日(火) 22:13 ] |
記事の件名: | Re: ツールバーでアクセス違反 |
こちらでも確認したいけど水波形さんが作成したテキストエディタのソースコードをみないと実験できません。 ちなみに水波形さんが確認したのPC環境はWindows 7/HOME SP1 X64ですよね? またABのバージョンは4.24ですよね? |
作成者: | 水波形 [ 2012年2月07日(火) 22:50 ] |
記事の件名: | おうふ |
あ~…… すいません、完全にぼけていました…… Win 7 64bit HOME です。 AB4.24.00を使ってます。 コードの抜き出し。 と言っても、上のサンプルページのコピ&ペーストですが [ここをクリックすると内容が表示されます]
コード: #include <api_commctrl.sbp> '----------------------------------------------------------------------------- ' イベント プロシージャ '----------------------------------------------------------------------------- ' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。 ' ウィンドウ ハンドル: hMainWnd ' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。 Const ID_TOOLBAR = 70 'ツールバーのID Const ID_STATUS = 71 'ステータスバーのID Dim hToolbar As DWord 'ツールバーのハンドル Dim hImageList As DWord 'イメージリストのハンドル Dim hStatus As DWord 'ステータスバーのハンドル Type NONCLIENTMETRICS cbSize As Long ' 構造体のサイズ iBorderWidth As Long ' 境界線の太さ iScrollWidth As Long ' 縦スクロールバーの幅 iScrollHeight As Long ' 横スクロールバーの高さ iCaptionWidth As Long 'キャプションのボタンの幅 iCaptionHeight As Long ' キャプションのボタンの高さ lfCaptionFont As LOGFONT ' キャプションが使用するフォント iSmCaptionWidth As Long ' ツールバーのキャプションのボタンの幅 iSmCaptionHeight As Long ' ツールバーのキャプションのボタンの高さ lfSmCaptionFont As LOGFONT ' ツールバーのキャプションで使用するフォント iMenuWidth As Long ' メニューバーのボタンの幅 iMenuHeight As Long ' メニューバーのボタンの高さ lfMenuFont As LOGFONT ' メニューが使用するフォント lfStatusFont As LOGFONT ' ステータスバーとチップヘルプが使用するフォント lfMessageFont As LOGFONT ' メッセージボックスが使用するフォント End Type Sub SetTbButtonData(ByRef ptb As TBBUTTON, iBitmap As Long, idCommand As Long, fsState As Byte, fsStyle As Byte) With ptb .iBitmap=iBitmap .idCommand=idCommand .fsState=fsState .fsStyle=fsStyle .dwData=0 .iString=0 End With End Sub '----------------------------------------------------------------------------- ' ウィンドウメッセージを処理するためのコールバック関数 Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord ' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。 ' イベントプロシージャの呼び出しを行います。 MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam) End Function '----------------------------------------------------------------------------- ' ここから下は、イベントプロシージャを記述するための領域になります。 Sub MainWnd_Destroy() 'イメージリストを破棄 ImageList_Destroy(hImageList) test_DestroyObjects() PostQuitMessage(0) End Sub Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT) 'ツールバー設定 Dim ic As INITCOMMONCONTROLSEX Dim tbb[4] As TBBUTTON Dim style As Long 'コモンコントロールの初期化 ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) 'ボタン情報をセット SetTbButtonData(tbb[0],0,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[1],1,IDM_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[2],2,IDM_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[3],0,0,TBSTATE_ENABLED,TBSTYLE_SEP) SetTbButtonData(tbb[4],3,IDM_ABOUT,TBSTATE_ENABLED,TBSTYLE_BUTTON) 'ツールバーを生成 hToolbar=CreateToolbarEx(hMainWnd,WS_CHILD or WS_VISIBLE,ID_TOOLBAR,4,GetModuleHandle(0),IDB_BITMAP1,tbb,5,0,0,16,15,Len(tbb[0])) End Sub |
作成者: | たかせ [ 2012年2月07日(火) 23:15 ] |
記事の件名: | Re: おうふ |
私のPCでは問題なく動作しました PC環境はWindows 7/HOME SP1 X86 X64だと何か問題あるのでしょうか? 申し訳ありませんがX64のPCもっていないので確認できません。 X64であればできれば念のためVer05CP5でコンパイルして動作確認してみてください。 よろしくお願いします |
作成者: | 水波形 [ 2012年2月08日(水) 13:03 ] |
記事の件名: | AB5で |
引用: X64であればできれば念のためVer05CP5でコンパイルして動作確認してみてください。
AB5で実行してみました。よろしくお願いします エラーは出ませんでしたが、真っ黒な四角で表示されてしまい、何が何かわからない状態に…… カラービットマップがダメなのでしょうか……? ……そんなこと無いですよね…… |
作成者: | たかせ [ 2012年2月08日(水) 13:29 ] |
記事の件名: | Re: AB5で |
AB5で確認しました。 X86では問題ありませんでした。 バグ報告に起票してはいかがでしょうか? > AB5で実行してみました。 > エラーは出ませんでしたが、真っ黒な四角で表示されてしまい、何が何かわからない状態に…… > カラービットマップがダメなのでしょうか……? > ……そんなこと無いですよね…… |
作成者: | 水波形 [ 2012年2月10日(金) 00:36 ] |
記事の件名: | |
引用: AB5で確認しました。
そうですね~X86では問題ありませんでした。 バグ報告に起票してはいかがでしょうか? したほうがいいかもしれません。 AB5使って無いからなんとも言えませんが…… AB4で使えないのは辛い |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |