[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/31 07:10 / Filesize : 149 KB / Number-of Response : 697
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build86



1 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 15:23:00 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build85
pc12.2ch.net/test/read.cgi/tech/1262430441/

175 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 16:19:25 ]
>>171
コンソールアプリを起動してAttachConsole

176 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 23:06:55 ]
>>175
ありがとうございました。

177 名前:デフォルトの名無しさん [2010/02/17(水) 15:33:54 ]
editウィンドウをただの黒い線の枠じゃなく
立体的なデザインにするには?

178 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 15:56:11 ]
テキストエディタ作ると結構奥が深いんぜ
最大の敵は垂直スクロールバーとウィンドウ幅に合わせた行折り返し

179 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 17:20:51 ]
えっ

180 名前:デフォルトの名無しさん [2010/02/17(水) 18:40:12 ]
ええっ

181 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 20:20:25 ]
・・・そんなに難しいか?

182 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 20:21:48 ]
テキスト編集は編集中のデータ管理だろう
まあListと同じで部品化すれば問題ないか

183 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:55:56 ]
メモ帳みたいにテキストボックス貼り付けるだけなら簡単だが、
秀丸みたいに内部データ管理から画面描画まで全部作って実用的な速度で動かすのはかなり大変
まあ最近はCPUが速いしメモリも大量に積んでるから、そういう環境限定なら難易度は下がるけど



184 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:30:23 ]
逆。難易度は逆に上がる。手に馴染むのが決め手なコントロール系
の製品開発は、遅いプロセッサで負荷をかけた状態でテストされ
プロトタイプが出来てからも何回も書き直される。
速いマシンで製品レベルのものが作れるのは余程の経験者か天才。

185 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:35:36 ]
お前らが作ったことが無いのは分かった


186 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:57:10 ]
俺ちょうど今作っててやとスクロールできるようになったぐらいなんだけど
>>178の言ってることはわかるような気がするよ、場合分け増えるし

たとえば一行が長くて折り返しがある行の時に右端にカーソルがある時
折り返す前の行の右端と折り返した後の行の左端は(ドキュメント的には)同じ位置
しかし画面では別の位置なのでカーソルを移動させたときに
前行の一文字手前で次の行にいくか、
次行の先頭行の最初の位置にカーソルがいかないようにするか
改行で表示行が変わってるときとでは動作が異なるから場合分けが増える

この辺ソフトによって動作が違ってて、GreenPadは後者、Terapadは前者だった

187 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 07:41:17 ]
両方に表示しちゃえばいいじゃない

188 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 08:43:33 ]
貴様らスレ違い


189 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:22:09 ]
スレ違いを承知で質問です。
(A) と (B) で見る AppriData構造体のデータは、整合性が取れてると思うのですが違いますか??
***** Main.c ****
struct AppriData;
main() {
  funcA();
}
*****************

**** funcA.c ****
extern struct AppriData;
funcA(VOID) {
  AppriDataを処理;     (A)
  ……
  funcB();
}
*****************

**** funcB.c ****
extern struct AppriData;
funcB(VOID) {
  ……
  AppriDataを処理;     (B)
}
*****************

190 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:43:10 ]
>>189
スレ違いと分かってて質問するなよ

191 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:35:31 ]
すいません、、、他所のスレがあまりに下らないので、みなさんにお願いします。

192 名前:デフォルトの名無しさん [2010/02/18(木) 18:45:01 ]
m9(^Д^)プギャーーーッ

193 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:57:09 ]
appliだろjk



194 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 20:39:03 ]
まずは変数宣言しろよ

195 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:38:49 ]
>>189
>整合性が取れてる
の意味がわかりません

196 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:09:57 ]
構造体はヘッダに書いて include 汁

197 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 01:47:47 ]
もうだめだこのスレ

198 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 08:55:47 ]
まじでか

199 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 09:50:19 ]
スレの存在自体無理がある
まともな質問の回答はMSDNに書いてある
MSDNに回答が無い質問は環境依存

200 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 10:02:06 ]
まじでか

201 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:28:26 ]
>>199

それマジで言ったん?ソースあんならすぐ出せ
マジなら2ちゃんねら総力を上げて潰すが


202 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:30:08 ]
MSDNを潰すのは勘弁してくれw

203 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:31:54 ]
総力ってお前誰だよ
今ふと思ったが
妙に「ねらー」とか「2ちゃんねら」とか言うの多いな
なんつうかν速慣れしてなそうな感じの




204 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:36:40 ]
一応突っ込んどくがそれ最近流行ってるコピペなんだぜ・・・釣りだったかな?

205 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:44:39 ]
しらんかった。

206 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:53:21 ]
一応突っ込んどくがそれ最近どころか数年前に流行ったコピペなんだぜ・・・釣りだったかな?

207 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:10:12 ]
>>201,>>203-204の流れまでがコピペなんだぜ・・・釣りだったかな?

208 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:11:20 ]
最初に言った人はマジなんだろうな

209 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:15:18 ]
はじめに見たのは1年半くらい前だった希ガス

210 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:27:27 ]
一応突っ込んどくがそれ最近流行ってるコピペなんだぜ・・・釣りだったかな?

211 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:42:30 ]
「総力を上げて潰す」は2007年7月頃に流行

212 名前:デフォルトの名無しさん [2010/02/19(金) 18:49:20 ]
ウィンドウサイズの変更時などノ時
ステータスバーに表示された文字が再描画されないんですが
どうしたらいいの?

213 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:44:36 ]




214 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:45:57 ]
おっ、書けた。

それでは質問させてください。
Windows Vista以降で、タイトルバーに3つのシステムボタンに加えて独自のボタンを自分のアプリのウィンドウに表示したいのですが、
どういう風に書けばいいでしょうか?
C#で書いてますが、C/C++の書き方で構いません。

215 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:14:50 ]
WM_NCPAINTで描く。

216 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:18:40 ]
>>215
それは最初に試しましたが、
Aeroが有効時にはDefWindowProcの呼び出しで完全に描画されてしまい、
その後から書いても書き込んだ内容が見えません。

217 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:27:55 ]
keybd_eventでalt+numpadの文字入力はできないの?

218 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:57:08 ]
>>217
Altキーはメニューが受け取るようにWindows自体が作られているから、
そういうショートカットキーは避けた方がいいんじゃね?

219 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:59:19 ]
>>214
BITMAP作ってリソース読み込めばいいんじゃない?

220 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 23:01:53 ]
>>219
おっしゃることがよく分かりません。
タイトルバーをなるべくOS標準のまま、必要最小限のカスタマイズをしたいのですが。
描画さえちゃんとできれば、クリックの受け取りはさほど難しくなさそうです。

221 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 23:30:54 ]
あーすまん
ツールバーと勘違いしてた

222 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 00:18:36 ]
>>216
msdn.microsoft.com/en-us/library/bb688195(VS.85).aspx
これの「Drawing in the Extended Frame Window」のところ。
DWM (Aero)環境下で、ウィンドウ全体をクライアント領域にするという方法がある。
これで、ウィンドウ全体を好きに描画できるようになる。
引き替えに、WM_NCHITTESTを自分で処理しなければいけないのが面倒。

その記事にもあるように、MS Office 2007も
これを使ってタイトルバー部分に食い込んで描画している。

223 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 00:47:18 ]
GDI製のボーダーを持たないWindow(ガクブチ)を作って
独自のボーダー(ボタン付き)にする。
クライアント領域は下のウィンドウをそのまま
書く。(Timerで定期的に下のウィンドウの更新を
チェック。自分のウィンドウに来たメッセージは
下のWindowに当然SEND)
この方法ってWindowが動いた時とかサイズが変わった
時、ちょっとみっともないこともなくもないけど
手軽でイくね?(もちょっとイイ小技もあるらしいが)



224 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 02:25:01 ]
>>222
おおっ! これぞドンピシャ!
しかし紹介いただいたサンプルを動かしてみてるところですが、
挙動が摩訶不思議でまだ大意がつかめてません。
(特にウィンドウメニューと組み合わせると……)
コードだけじゃなくて記事本文も読まないといけないみたい。
でもこの延長線上でなんとかなりそうです。フレームの挙動がちゃんと変わってるし。

>>223
そういう方法もありだとは思います。GOMプレーヤーとかスキンを活用する系統では
そちらの方が逆にスマートかもしれないし。
でも面倒くさそう……。
今予定してるのはボタンを1個追加するだけなので。

225 名前:デフォルトの名無しさん [2010/02/20(土) 12:28:03 ]
全角文字の1バイト目かどうかを判断するAPIを教えてください

226 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 12:30:40 ]
文字コードは?

227 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 13:01:17 ]
CharNext(p) - p >= 2

228 名前:デフォルトの名無しさん [2010/02/20(土) 13:09:47 ]
しふとJISですぅ

229 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 13:16:57 ]
S-JISなんてAPIいらねーだろ
半角はアスキーコード互換、全角用もアスキーコードの空き部分の
コードを利用してるだけなんだし

230 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 13:38:43 ]
IsDBCSLeadByte
IsDBCSLeadByteEx

231 名前:デフォルトの名無しさん [2010/02/20(土) 13:41:37 ]
>>230
ありがとうございます。>>229のクズとは大違いで助かりました。

232 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 13:57:30 ]
複素数を表現するクラスMultiElemNumを作りました。
APIでは、どうするのです。か

233 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:18:50 ]
何をどう答えればよいのです。か



234 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 15:39:15 ]
単語「API」の用例と
あとは・・正しい日本語の使い方日本語をお願いします。

235 名前:デフォルトの名無しさん [2010/02/20(土) 16:58:41 ]
>>232
MultiElemNumが英語になっていない。Complexが正しい。

236 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:17:54 ]
printfだって英語になってないがな
もしかして「適切な訳語」のことを言いたかったのか

237 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:29:02 ]
>>225
マルチすんな

238 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:29:17 ]
わかってるんなら、わざわざ聞くなよ。

239 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:36:08 ]
開き直ってその態度。笑っちゃうね。笑わないけど。

240 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:37:46 ]
>>225>>232は同じ人間のような気がする

241 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:38:10 ]
何言ってんだ。

242 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:41:43 ]
>>241

243 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:44:32 ]
条件反射的に一言多いというかなんとうか
そういう人間がそうそう近い時間に複数来るってのは無いしな



244 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:47:08 ]
>>242
241は239当てな。

245 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:48:50 ]
何言ってんの

246 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:51:26 ]
条件反射的に一言多いというかなんというか
そういう人間がそうそう近い時に複数来るってのは無いしな

247 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:52:09 ]
>>245
いや、「開き直って」とか言われたから、何考えてるんだろうと思って、241のレスしただけのこと。

248 名前:デフォルトの名無しさん [2010/02/20(土) 18:53:22 ]
ではやはり上げておくべきですね。

249 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:56:45 ]
いいからAPI出せや

250 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:06:38 ]
APIを出す話だったのか

251 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:11:07 ]
わろた >>249は天然


252 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:19:06 ]
ふぁびょおおおおってんなよ

253 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:21:56 ]
>>252
API



254 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:49:39 ]
>>253
API

255 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:02:23 ]
>>254
あぴ

256 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:16:19 ]
>>255
AIP

257 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:41:53 ]
A・P・I!A・P・I!

258 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:42:36 ]
次世代型匂い付きAPI

259 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:43:14 ]
>>249
そういうのはID出る板でスレ立ててやれ
ここじゃ一生apiなんて出ないぞ

260 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:01:04 ]
↑ちなみにこれは「IDに〜〜を出す」系のスレに掛けている

261 名前:デフォルトの名無しさん [2010/02/21(日) 05:28:41 ]
質問です。

LPCWSTR型の文字列を返却する関数を、
TextOut関数で画面に表示すると、文字化けしてしまいます。

問題となっている関数の中身をコピーして、

TextOut関数の存在する関数の中にペーストし、

返却する変数をそのまま表示するようにした場合は、正しく表示されます。

色々試行錯誤しましたが、見当が付かないので教えていただけるとありがたいです。


---参考 問題の関数---

LPCWSTR get_chart_size(void){
  char dataBuff[] = "alphabet0123カタカナひらがな漢字";
  wchar_t pwsz[sizeof(dataBuff)*2];

  std::locale::global(std::locale("japanese"));

  MultiByteToWideChar(CP_ACP, 0, dataBuff, strlen(dataBuff)+1, pwsz, sizeof(pwsz));

  LPCWSTR Data = pwsz;

  return Data;
}

262 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:33:41 ]
関数出たら解放されてしまってるんだろう
malloc 汁

263 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:34:14 ]
char dataBuff
これはマルチバイト

wchar_t pwsz
これはワイド文字

文字コードが違う

MultiByteToWideChar
これはマルチバイトからワイド文字に変換する関数?



264 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:36:00 ]
>>261
pwszは非静的な局所変数なので、returnした時点で無効になる。

265 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:37:42 ]
呼ぶ方
  wchar_t pwsz[sizeof(dataBuff)*2];
  pwsz = get_chart_size(pwsz, sizeof(pwsz));
  TextOut(hogehoge);

呼ばれる方
LPCWSTR get_chart_size(wchar_t *pwsz, size_t size){
  char dataBuff[] = "alphabet0123カタカナひらがな漢字";
  std::locale::global(std::locale("japanese"));
  MultiByteToWideChar(CP_ACP, 0, dataBuff, strlen(dataBuff)+1, pwsz, size);
  return (LPCWSTR)pwsz;
}

266 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:57:19 ]
というか、char、wchar、TCHARはちゃんと区別しようね。みんな。

267 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 08:23:56 ]
       /|
       |/__
       ヽ| l l│<ハーイ
       ┷┷┷

268 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 09:05:42 ]
間違えた、wchar_tだった

269 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 12:42:28 ]
>>261
スレ違い。C言語質問スレに池

270 名前:デフォルトの名無しさん [2010/02/21(日) 13:01:11 ]
以下のような例で、vdCreateToolBar(VOID) と hdCreateToolBar(HWND hwndParent) とで
関数の中身は全く同一で、親ウィンドウのハンドルにグローバル変数を使うのと、関数の
引数を使うのとでは、作成されるツールバーの表示が (1) と (2) で異なるのですが、
なぜでしょうか???
HWND g_hMain;
WinMain() {
  HWND hMain;
  hMain = CreateWindowEX();
  g_hMain = hMain;
  vdCreateToolBar();-------------------(1)
  hdCreateToolBar(hMain);--------------(2)
  …
}
vdCreateToolBar(VOID) {
  g_hMain; グローバル変数でツールバー作成 (1)
}
hdCreateToolBar(HWND hwndParent) {
  hwndParent; 引数を使ってツールバー作成 (2)
}

271 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 13:25:42 ]
ちなみに、vdCreateToolBar(VOID) と hdCreateToolBar(HWND hwndParent) は,
WinMain() とは別の C ファイルです。

vdCreateToolBar(VOID) の g_hMain は extern で取得してます。

272 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 13:26:51 ]
vdCreateToolBarとhdCreateToolBarの内容が違うから

273 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 13:30:43 ]
デバッガで動きを比べてみな。



274 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 14:30:18 ]
キャストしたらどうなりますか?APIを教えてくだしあい

275 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:30:42 ]
extern "C" {} の内か外かで、結果が違ってくるとかありますか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<149KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef