DLLにビットマップ
> CreateToolbarEx()関数の第6引数にはビットマップのリソースIDを指定するんですよね。ビットマップのハンドルだと勘違いしてたので面倒臭くなってきました...。
http://yokohama.cool.ne.jp/chokuto/uraw ... barEx.html
↑によると第6引数はビットマップハンドルでもOKみたいですよ。
http://yokohama.cool.ne.jp/chokuto/uraw ... barEx.html
↑によると第6引数はビットマップハンドルでもOKみたいですよ。
ということは?どうなるんですか?
を書くというのですか?
コード: 全て選択
HWND CreateToolbarEx(
HWND hwnd, // 親ウィンドウのハンドル
DWORD dwStyle, // ウィンドウスタイル
UINT uID, // コントロールID
int nBitmaps, // ビットマップの数
HINSTANCE hBMInst, // モジュールハンドル
UINT uBMID, // リソースIDまたはビットマップハンドル
LPCTBBUTTON pButtons, // TBBUTTON構造体
int nNumButtons, // ボタンの数
int dxButton, // ボタンのxサイズ
int dyButton, // ボタンのyサイズ
int dxBitmap, // ビットマップのxサイズ
int dyBitmap, // ビットマップのyサイズ
UINT uStructSize // TBBUTTON構造体のサイズ(=20)
);
> ということは?どうなるんですか?
> 中略
> を書くというのですか?
どうしてそう思ったのか書いて頂けると雷電さんのActiveBasicに対する根本的な勘違い?を解消できるように思います。
> もう少し詳しく教えていただけませんか?
ツールバーを作る時にCreateToolbarEx()関数を使っているはずですが、第5引数にNULLを指定して第6引数にはビットマップのハンドルを指定するだけです。
※他の引数は何も指定しなくていいという意味ではありません
GetSampleBmp()関数の戻り値をHBITMAP型グローバル変数に代入し、その変数をCreateToolbarEx()関数の第6引数に指定してやればいいはずです。
プログラムを終了する時には、DeleteObject()関数にHBITMAP型グローバル変数を指定してやって、ビットマップのハンドルを解放する必要があります。
> 中略
> を書くというのですか?
どうしてそう思ったのか書いて頂けると雷電さんのActiveBasicに対する根本的な勘違い?を解消できるように思います。
> もう少し詳しく教えていただけませんか?
ツールバーを作る時にCreateToolbarEx()関数を使っているはずですが、第5引数にNULLを指定して第6引数にはビットマップのハンドルを指定するだけです。
※他の引数は何も指定しなくていいという意味ではありません
GetSampleBmp()関数の戻り値をHBITMAP型グローバル変数に代入し、その変数をCreateToolbarEx()関数の第6引数に指定してやればいいはずです。
プログラムを終了する時には、DeleteObject()関数にHBITMAP型グローバル変数を指定してやって、ビットマップのハンドルを解放する必要があります。
どうしてそう思ったのか、の、そう、とは雷電さんが下のコードを書こうと思った理由なんですけどね...。
このまま書くつもりで載せた訳じゃないなら、失礼しました。
> DLLがないと、プログラムは動かないことに気がつきました。
はい。これは当たり前ですね。
> だからDLLとEXEを分離して、
DLLがないと動かないのは仕方のないことです。
普通のユーザーが故意にDLLを破棄するとはあまり思えないのでDLLがない状態もなかなか起こらないと思いますけど、それが嫌なら初めからDLLとEXEに分離しなければいいのではないでしょうか。
> メールをくれないとDLLを転送しないという風にしようとしているのですが、何かおかしいですか?
そんな風にしようと思っても、さっきのコードには行き着きません。
メールをくれないとDLLを転送しないという部分からの推測なのですが、特定の人物しかプログラムを動かせないようにしたいのでしょうか?
また、ビットマップとCreateToolbarEx()関数の件ですが、分かってもらえたでしょうか。
[ここをクリックすると内容が表示されます]
どこから引っ張ってきたのか分かりませんが、これはこのまま書いても動きません。コード: 全て選択
HWND CreateToolbarEx(
HWND hwnd, // 親ウィンドウのハンドル
DWORD dwStyle, // ウィンドウスタイル
UINT uID, // コントロールID
int nBitmaps, // ビットマップの数
HINSTANCE hBMInst, // モジュールハンドル
UINT uBMID, // リソースIDまたはビットマップハンドル
LPCTBBUTTON pButtons, // TBBUTTON構造体
int nNumButtons, // ボタンの数
int dxButton, // ボタンのxサイズ
int dyButton, // ボタンのyサイズ
int dxBitmap, // ビットマップのxサイズ
int dyBitmap, // ビットマップのyサイズ
UINT uStructSize // TBBUTTON構造体のサイズ(=20)
);
このまま書くつもりで載せた訳じゃないなら、失礼しました。
> DLLがないと、プログラムは動かないことに気がつきました。
はい。これは当たり前ですね。
> だからDLLとEXEを分離して、
DLLがないと動かないのは仕方のないことです。
普通のユーザーが故意にDLLを破棄するとはあまり思えないのでDLLがない状態もなかなか起こらないと思いますけど、それが嫌なら初めからDLLとEXEに分離しなければいいのではないでしょうか。
> メールをくれないとDLLを転送しないという風にしようとしているのですが、何かおかしいですか?
そんな風にしようと思っても、さっきのコードには行き着きません。
メールをくれないとDLLを転送しないという部分からの推測なのですが、特定の人物しかプログラムを動かせないようにしたいのでしょうか?
また、ビットマップとCreateToolbarEx()関数の件ですが、分かってもらえたでしょうか。
> どうしてそう思ったのか、の、そう、とは雷電さんが下のコードを書こうと思った理由なんですけどね...。
>中略
> どこから引っ張ってきたのか分かりませんが、これはこのまま書いても動きません。
> このまま書くつもりで載せた訳じゃないなら、失礼しました。
>
このまま書くつもりはありませんでした。
> メールをくれないとDLLを転送しないという部分からの推測なのですが、特定の人物しかプログラムを動かせないようにしたいのでしょうか?
そのとおりです。
> また、ビットマップとCreateToolbarEx()関数の件ですが、分かってもらえたでしょうか。
うーん、まだよくわかりません。
Creatでやろうとしても、ユーザー側の読み込むほうもおかしくなってしまいます。
>中略
> どこから引っ張ってきたのか分かりませんが、これはこのまま書いても動きません。
> このまま書くつもりで載せた訳じゃないなら、失礼しました。
>
このまま書くつもりはありませんでした。
> メールをくれないとDLLを転送しないという部分からの推測なのですが、特定の人物しかプログラムを動かせないようにしたいのでしょうか?
そのとおりです。
> また、ビットマップとCreateToolbarEx()関数の件ですが、分かってもらえたでしょうか。
うーん、まだよくわかりません。
Creatでやろうとしても、ユーザー側の読み込むほうもおかしくなってしまいます。