よくわかっていないのですが、
switch (message)
{
case WM_CHAR:
というところで、wParamから、文字の情報取得して、
HDC宣言して、TextOut関数使用…、の途中で、
wParamの文字情報は、どのようにすれば
TextOut関数に渡せるのでしょうか?
Visual C++を勉強したてで、勉強の成果をと思い、
テキストエディタを作ってみたいと思ったのですが、
さて、どうしたらよいのでしょうか?
エラー内容は、unsigned int → const char *
にできません、ということなのですが、
じゃぁ、型の変換の仕方は?という感じです。
初心者なので、簡単な例をつけて説明してくださると助かります。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
TextOut(~, (char*)wParam, ~);
と、char*型に型変換すると良い気がします。
--
TextOut関数の宣言、
TextOut(~, (const char*)szText, ~);
のconstキーワードは、
「TextOut関数に渡したwParamの値をTextOut関数の内部で書き換えることはありませんので安心してね。」
という意味ですので、
unsigned int
long double
などの2つの単語で宣言される「型」とは意味合いが異なります。
ヘルプの説明ですと釈然としませんが、参考URLなどを読んでみてください。
プログラマの正体!? - 誰が為にconst
http://www.asahi-net.or.jp/~vx2t-andu/lets/20020 …
参考URL:http://www.asahi-net.or.jp/~vx2t-andu/lets/20020 …
何が何だかわからないのですが、
以下のソースで、できました。
お手数掛けました。また、よろしくお願いします。
ありがとうございました。
//ウインドウプロシージャ
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
POINT pt;
char s;
HDC hdc;
//メッセージの種類に応じて処理を分岐する。
switch (message)
{
case WM_CHAR:
GetCaretPos(&pt);
s=LOWORD(wParam);
hdc=GetDC(hWnd);
HideCaret(hWnd);
TextOut(hdc,pt.x,pt.y,&s,1);
SetCaretPos(pt.x+13,pt.y);
ShowCaret(hWnd);
ReleaseDC(hWnd,hdc);
return 0;
case WM_CREATE:
CreateCaret(hWnd,NULL,3,20);
ShowCaret(hWnd);
return 0;
case WM_DESTROY:/*ウインドウが破棄されたときの処理*/
PostQuitMessage(0);
return 0;
default:/*デフォルトの処理*/
return DefWindowProc(hWnd,message,wParam,lParam);
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
入力された文字列の中の数字を...
-
new charとnew char[N]の違いは?
-
C言語:小文字を大文字に変換す...
-
DWORDとcharの変換
-
小数点入りの文字列をfloat型に...
-
プログラムの中身の意味
-
wsprintf( ポインタ , "%d" , "...
-
C言語のプログラムについてです
-
szとlpszの違い
-
Vectorでヒープエラーが出る
-
csvファイルをfscanfで読み込む...
-
fstream型オブジェクトを関数の...
-
エクセルのMID関数は、C言語では?
-
文字列内の数字削除
-
警告 : 問題のあるポインタの変換
-
しつこい様ですが、再度ポイン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
C言語のintとcharの違いってな...
-
小数点入りの文字列をfloat型に...
-
new charとnew char[N]の違いは?
-
const char* s1とただのchar s1...
-
DWORDとcharの変換
-
strcat関数を自作したいです
-
C++17で、unsigned char * 配列...
-
文字列内の数字削除
-
エクセルのMID関数は、C言語では?
-
char 文字列型 の表現範囲が-12...
-
char型にint型の数値を代入する。
-
C言語を用いた環境変数の作成/...
-
動的メモリの初期化方法について。
-
fstream型オブジェクトを関数の...
-
C言語のプログラムについてです
-
文字列の途中から途中までを抽出
-
C言語:小文字を大文字に変換す...
おすすめ情報