トップページ⇒tech
1001コメント295KB

Win32API質問箱 Build18

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001 ◆Manna2uCLg NGNG
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしいオジサマ達が、熱く暑く答えてくれよう。
でも最低限、最新スレくらいは質問する前に検索を。
過去スレ・参考は>>2-5くらいを参照するッス!
0809808NGNG
すいませんsageてしまいました
0810デフォルトの名無しさんNGNG
>>808
変更のあったアイテムだけ書き換えるんじゃだめなの?

あとは、大量のアイテムを追加したりするときのために
描画を停止させる方法があった気がするけど、
スタイルだったっけなぁ・・・?
0811808NGNG
>変更のあったアイテムだけ書き換えるんじゃだめなの?

DeleteAllしないでInsertすると項目がどんどん追加されてしまうし、
どうしたら変更のあったアイテムだけ書き換えることができるでしょう?
0812デフォルトの名無しさんNGNG
ListView_SetItem
0813デフォルトの名無しさんNGNG
ListView_SetItem、ListView_SetItemText
お好きな方をどうぞ。

前から疑問に思っていたのだけど、質問するときにスレを上げるのって何か意味があるの?
ローカルルールなら仕方ないと思うんだけど、たまにムカっとくるんだが。
0814デフォルトの名無しさんNGNG
>>813
2ちゃんブラウザ使ってるとそう思うときもあるけど、
IEとかネスケ使ってる場合、ageてくれないと見つけづらいからね。
記事が目に付かないと答えがもらえる可能性も低くなるし。

最近は見ないけど、質問するときはageとけっていってる人もいた。
0815デフォルトの名無しさんNGNG
スレをsageる方にこそ意味があるのかと
0816デフォルトの名無しさんNGNG
さらしあぐぇ
0817デフォルトの名無しさんNGNG
>>813
>ローカルルールなら仕方ないと思うんだけど、たまにムカっとくるんだが。

ほう。どうしてムカつくのかね?
0818デフォルトの名無しさんNGNG
>>815
私もちょっと思う。

けど、sage
0819デフォルトの名無しさんNGNG
>>815>>818
仮にも技術板なんだし、
質問やニュース系がageで、普通の雑談はsageにしたほうが
利便性高い気がしなくもないけど。
普段からageてると、質問が埋もれるし。
0820デフォルトの名無しさんNGNG
age書き込み=荒らしだと信じ込んでいる人は困る。
0821デフォルトの名無しさんNGNG
だれもそんな事は言ってない。
0822デフォルトの名無しさんNGNG
>>821
2ch中にたくさんいるだろうが。
0823デフォルトの名無しさんNGNG
2ch中なんて見て回る余裕内
0824デフォルトの名無しさんNGNG
いや、つーかスレと関係ない話題はyosoでやってくれんか。
0825デフォルトの名無しさんNGNG
そうだそうだ
0826デフォルトの名無しさんNGNG
飲むソーダ
0827デフォルトの名無しさんNGNG
>>824
yoso送り
0828デフォルトの名無しさんNGNG
このスレは見てる人多いんだからageて目立たせなくても教えてくれる人は居るかと。
それでもageるのは質問スレの慣習かな。
0829デフォルトの名無しさんNGNG
なんかage=悪って洗脳されてるやつがいるな。
0830デフォルトの名無しさんNGNG
「デフォルト=悪」ということらしいねw
0831デフォルトの名無しさんNGNG
でも、age進行のスレで関係ない質問が紛れ込んだことはあった。
プログラム板だからどれも同じと思ったらしいが。
0832デフォルトの名無しさんNGNG
>>830
漏れのブラウザでは、sageがデフォルトなんでつが・・・
0833デフォルトの名無しさんNGNG
2chのデフォルトっつー意味だって事ぐらい分かるだろ。
0834デフォルトの名無しさんNGNG
技術系板では2chブラウザを使って当然、それらのデフォルトのsageで投稿して当然だと思うけど?
0835デフォルトの名無しさんNGNG
脳が涌いているようでつね。
0836デフォルトの名無しさんNGNG
使ってるソフトウェアのデフォルト設定だから、ってのは思考停止だと
思うぞ。

ところで、8bpp 以下の DIB のパレットの扱いがよくわからん…。どっ
かにいい解説はないもんだろうか。

0837デフォルトの名無しさんNGNG
とりあえずPetzold本の下巻
0838デフォルトの名無しさんNGNG
ttp://www.kk.iij4u.or.jp/~kondo/bmp/
0839デフォルトの名無しさんNGNG
2chだろうがブラウザだろうが「デフォルトだから」ってのは頭悪そう
0840836NGNG
>>836
あーいや、BMPのファイルフォーマットは理解してるんです。

CreateDIBSection() で DIB_PAL_COLORS したときにどんなパレットが
HBITMAP の中に記録されているの? とか、GetObject() で DIBSECTION
が取れるけど、DIBSECTION にパレット情報が含まれないのはなんで?
とか、GetDIBColorTable() に HDC が必要なのはなんで? とか。

0841デフォルトの名無しさんNGNG
>>840
パレットはビットマップじゃなくてデバイスコンテキストの属性だから。
0842836NGNG
DIB_RGB_COLORS で CreateDIBSection() するときはパレットの情報も
渡してるよね? そのときに渡したパレットの情報は HBITMAP の中には
保持されてないってこと?

0843デフォルトの名無しさんNGNG
>>842
そうですよ。
っていうか841に書いたように「パレット」はデバイスコンテキストの属性なんだってば。
0844843NGNG
ん、なんか自信無くなってきたぞ・・・
0845デフォルトの名無しさんNGNG
いや、パレットの情報なんか渡されないし。
CreateDIBSectionとかで指定するのは、ビット列がどんな色情報を
持っているかだけで、その後のパレットとは関係ない。
0846836NGNG
SetDIBits() や GetDIBits() ではとくに疑問はないんです。

>>845
CreateDIBSection() ではピクセルのデータは入力しないから、その説
明だと bmiColors の情報は全く何にも使われないことになっちゃいま
すよ。
MSDN の説明を読む限りでは、DIB_PAL_COLORS でも DIB_RGB_COLORS で
も bmiColors のテーブルには意味があるはず。
0847デフォルトの名無しさんNGNG
あー、もうウザいから、君の理解している「パレットの定義」を書いてくれ。
0848836NGNG
パレットちうのは、ピクセルデータから RGB 値に変換するテーブルのことさー。

DIBSection な HBITMAP の場合、
・CreateDIBSection() で DIB_RGB_COLORS のときに bmiColors に入って
いるもの
・CreateDIBSection() で DIB_PAL_COLORS のときに HDC が SelectPalette()
してるHPALETTE と bmiColors に入っている WORD 配列
・その HBITMAP を SelectObject() した HDC が SelectPalette() してる HPALETTE
・GetDIBColorTable() と SetDIBColorTable() で出し入れできるもの
これらの関係はなにさ? ということ。
0849デフォルトの名無しさんNGNG
>>847答えられなくなったからキレた。
0850843NGNG
>>848
bmiColors にある clut が意味を持つのは、StretchDIBits や SetDIBits などで使うときだけ。
CreateDIBSection で得られた HBITMAP は、旧来の GDI 的には旧来の HBITMAP としてしか
扱われないので、HBITMAP を用いる場面では SelectPalette 等する必要がある。

>・CreateDIBSection() で DIB_RGB_COLORS のときに bmiColors に入っているもの
>・GetDIBColorTable() と SetDIBColorTable() で出し入れできるもの
この2つは同じ化も知れない。

あとは全て相互に無関係。
まぁ普通はプログラマが意識して一致させるだろうけど。
0851デフォルトの名無しさんNGNG
>>849に同意w
それはさておき、本題を書きましょうか。

まず、少し混同しているようだが、パレットとカラーテーブルは別物。
CreateDIBSectionで作られるHBITMAPの中にあるのはカラーテーブル。
CreatePaletteなどで作るHPALETTEがパレット。

CreateDIBSectionのiUsageはそのカラーテーブルをどう作るかを指定してるだけ。
GetDIBColorTableなどでいじってるのも、関数の名前どおりカラーテーブル。

実際画面に表示する時には、このHPALETTE内のパレットと、DIBSection内の
カラーテーブルとをカラーマッチングして表示してたと思う。
0852デフォルトの名無しさんNGNG
VBからの呼出ですがよろしくお願いします。

ImmGetConversionListを使ってIMEでの変換候補を取得しようとしています。方法は
ttp://www.mitene.or.jp/~sugisita/vb6_ime.html
の「IMEの変換候補の取得」をそのまま流用させて頂いてます。

ところがたとえば平仮名の”あ”について変換候補を取得すると
亞、亜の2つしか取得できません。メモ帳で”あ”を変換すると私の環境では
亜、亜、ア、あ、阿、ぁ、蛙、唖、ァ、吾の10個の候補が出てきます。

どうやったら10個全て取得できるのか教えてください、よろしくお願いします。
0853名無し@沢村NGNG
おまいらよ、いまだにビットマップの表示ごときで議論してるのか?
ビットマップの表示ごときで議論することが何かあるのか?
おまいらに、幼稚園児の称号を与えてもいいか?
0854デフォルトの名無しさんNGNG
つまらんアセンブラ解説サイトなんか作ってないでもっと実用的なモノやれよ。
PE解析に役立つアセンブラ、とかさ。
0855デフォルトの名無しさんNGNG
(ノ∀`)アチャー
0856デフォルトの名無しさんNGNG
嘘を嘘と(ry
0857デフォルトの名無しさんNGNG
つまり本物だろうと騙りだろうとネタだろうと嘘だろうと

   沢 村 に レ ス す ん な
0858デフォルトの名無しさんNGNG
>>857
お前に指図はされない
0859デフォルトの名無しさんNGNG
俺にも指図はされない
0860デフォルトの名無しさんNGNG
俺は指図しない
0861デフォルトの名無しさんNGNG
指定フォルダの中にフォルダがあるかどうかをみるって
FindFirstFileで調べないとダメ?もっと簡単なAPIってある?
教えてエロエロな人
0862デフォルトの名無しさんNGNG
おまえに指図される
0863デフォルトの名無しさんNGNG
俺にも指図してよ
0864デフォルトの名無しさんNGNG
指図してください、ご主人様。

ところで、
>>861
FindFirstFile とかでぐるぐるするぐらいしか思い浮かばないわ。
じゅうぶん簡単な方法だと思うの。
0865デフォルトの名無しさんNGNG
名前わかってるなら、ぐるぐるする必要は無いだろ。
0866デフォルトの名無しさんNGNG
>>864
だよなぁ
>>865
ちげえって、指定フォルダん中にさらにフォルダあるかどうかってきいてんあああああああああああああああああばかあああああああああ
0867デフォルトの名無しさんNGNG
サブフォルダがあるかどうかはシェルAPIを使って
SFGAO_HASSUBFOLDER
のビット見ればいいだろ。
0868デフォルトの名無しさんNGNG
複数行描画、クリッピング機能、DT_EDITCONTROLを使いたくてDrawTextを使ってるんですが、
この関数は連続して文字を書きたいときに、カレントポジションを更新してくれないので
代わりになるような関数とかってありますか?

もしくはDT_EDITCONTROLでやってる計算方法とかわかれば関数を自作してみますけど・・・
DT_CALCRECTじゃ矩形しかとれないんですよね?


#「FindFirstFile とかでぐるぐるする」って表現、なんかかわいいw
0869デフォルトの名無しさんNGNG
>>867
お、そんな便利なものがあったのか、と思ったら、COM かあ。
0870デフォルトの名無しさんNGNG
>>869
COMかどうかなんか気にする必要はないぞ。
普通にヘッダインクルードしてライブラリリンクすれば使える。
そもそもAPIなんかほとんどDLLなんだし。何が問題?
0871デフォルトの名無しさんNGNG
参照カウントとかQueryInterfaceにアレルギーがあるんじゃないの?
0872デフォルトの名無しさんNGNG
そこでATLですよ
しかし生APIとは言えなくなる罠
0873デフォルトの名無しさんNGNG
ATLの方が厄介でしょ。
相手先の環境によっちゃ、DLL配らなきゃいけないし。
0874デフォルトの名無しさんNGNG
COM でやるんなら、FindFirstぐるぐるでも手間かわらないんじゃ?
0875デフォルトの名無しさんNGNG
>>867
髪!!
さんくす
0876デフォルトの名無しさんNGNG
>>868
TEXTMETRIC使ってこねこねじゃダメかしら?
0877868NGNG
文字列A="あいうえおかきくけこ\nさしすせそ";
文字列B="ぱぴぷぺぽ";

だとすると、

あいうえおかきくけこ
さしすせそぱぴぷぺぽ

のように表示させたいんですよね。


>>876
自分もTEXTMETRICとかでこねこねしたいんですけど、
DT_EDITCONTROL、つまりエディットコントロールの表示方法に合わせたいので
エディットコントロールがどうやって座標計算してるのかが分からないので・・・

でも、レスありがとうございます。
今まで相手にされてなかったので(´・ω・`)してまスた。
0878デフォルトの名無しさんNGNG
>>873
なんでスタティックリンクしないの?
0879デフォルトの名無しさんNGNG
>>877
毎回全部描く。
0880デフォルトの名無しさんNGNG
Win32APIでJPEGの表示ってサポートされていないんですか?

したらどうやってC/C++でJpegを表示するのだ。
VBでいうピクチャーボックスみたいなコントロールあるんですか?
0881デフォルトの名無しさんNGNG
お魚は最初から切り身になっているのではありません
0882デフォルトの名無しさんNGNG
なんかJPEG,PNGの質問って定期的にでるな。
0883デフォルトの名無しさんNGNG
>>880
表示できます。頑張って探して下さい。
0884デフォルトの名無しさんNGNG
ネタとしか思えんよな
0885デフォルトの名無しさんNGNG
実は質問してるのは全部同一人物で、忘れるたびに聞きにきている。
0886名無し@沢村NGNG
>>880
JPEGを扱うWin32APIはないよ。
だがJPEGをビットマップに変換してやれば簡単に表示できるよ。
0887880NGNG
ネタでした。
多々こういう質問があることも知っている。
できないのくらい知っているわ
なんでい、お前らは。
いたすぎるんだよ、発言が。
夜まわりしているような老人の脳みそしかないんだな?藁
0888デフォルトの名無しさんNGNG
縦横に文章作るって大変だな。
0889デフォルトの名無しさんNGNG
BI_JPEG と BI_PNG が混乱を招いてるような気も。
0890デフォルトの名無しさんNGNG
タ々きんたま、か。
0891名無し@沢村NGNG
みなみなさまがた〜教えてくださらんか〜みなみなさまがた〜♪
リッチエディットでキーワードを色づけするにはどうしたらいいの?
FindTextで選択状態にして色づけ→それを繰り返す、ってのはナシで頼むよ。
みなみなさまがた〜教えてくださらんか?
0892デフォルトの名無しさんNGNG
IME2000のユーザ辞書に登録されている単語(?)を取得して、
IME2002及びIME2003に登録したいんですが、どーやれば良いんでしょう?
ググってみても...なーも出て来ないし..._| ̄|○

『IMEの辞書登録から抽出して、それから登録』ってのは無しの方向で...
Imm〜関数で出来るんですかね?

誰か教えてくだされ<(_ _)>
0893デフォルトの名無しさんNGNG
>>891
write RTF by your self.

>>861

it's most easy way.
0894名無し@沢村NGNG
>>886
OleLoadPicture() ♪
0895デフォルトの名無しさんNGNG
>>877
lstrcat()つかう
0896デフォルトの名無しさんNGNG
>>894
それはWin32APIじゃなくてOLEだっての
0897デフォルトの名無しさんNGNG
>>896
屁理屈言ってんじゃねーよ。
0898デフォルトの名無しさんNGNG
>>897
それが屁理屈ならDirectShowを薦めてもいいのか?
0899デフォルトの名無しさんNGNG
>>898
本当に屁理屈ばかり言う奴だな。
DirextShowとは性格が違うだろ。
OleLoadPictureはWin32 SDKに標準で入ってるから、Win32APIでいいのさ。
0900デフォルトの名無しさんNGNG
>>899
んだね。
WindowsOSに標準で入ってるし。
0901デフォルトの名無しさんNGNG
流れぶった切ってすまんが、
自分のIPアドレスを取得するAPIってありますかな?
あったらおしえてくだされ。
0902デフォルトの名無しさんNGNG
GetIpAddrTable
0903デフォルトの名無しさんNGNG
>>899,900
どういう性格をしたAPIならいいの?
DirectShowが屁理屈なのは分かってるけど、
それでもWin95(OSR2以降だったか)にも標準で入ってたはずだし、
DirectX SDKを入れなくても利用できる。
かたや、OleLoadPictureだってWin32sじゃあ動かない。

テキトーな感覚でOleLoadPictureはよし、
DShowはダメみたいに切り分けてるのが納得いかないだけだ。
0904デフォルトの名無しさんNGNG
>かたや、OleLoadPictureだってWin32sじゃあ動かない。
必死すぎ
0905デフォルトの名無しさんNGNG
おいおまいら、必死杉はレバノン杉に次いで伐採による絶滅が危惧されているものなので
もっとやさしく扱ってやらないとグリーンピースがRMSと一緒に縦笛吹きながら攻めてきますよ。
0906デフォルトの名無しさんNGNG
Win32sはつらいな。せめてNT3.5とかさ。

ttp://www02.so-net.ne.jp/~okuda/tech/oleaut32/
によるとデフォ状態のWin95OSR2ぐらいではoleaut32には含まれず
olepro32に入ってるもののようだから、非常に標準的なWin32 API
であるとは言い難いのかもしれない。
0907デフォルトの名無しさんNGNG
TAとTAを接続してデータをやり取りをするソフトを
作成しようと思い、とりあえず、ハイパーターミナル同士を
接続したのですが、文字を打っても相手側に表示されません。

なにかプロトコルなどがあるのかとおもいますが、ソフト作成
時に使用するDLL、APIなどがあれば教えていただきたいのですが
よろしくお願いします。
0908デフォルトの名無しさんNGNG
的はずれ
レス数が900を超えています。1000を超えると表示できなくなるよ。