質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

7381閲覧

LoadBitmapでのbmpのロード

Weapon

総合スコア106

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/03/07 15:03

前提・実現したいこと

WINAPIのウィンドウプロシージャ
BITMAPのレンダリング

発生している問題・エラーメッセージ

リソースファイルにbitmap.rcとbitmap.bmpを追加したうえでもLoadBitmapでファイルが読み込めません。
#define UNICODEを定義していますが文字コードのせいでしょうか

C++

1//Procedure 2case WM_PAINT: 3 { 4 HDC hdc = BeginPaint(hwnd, &ps); 5 6 if (!(hBmp = LoadBitmap(hInstance, L"MYBMP"))) { 7 MessageBox(hwnd,L"FAILED TO LOAD", L"ERROR", MB_OK); 8 return 0; 9 } 10 11 GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info); 12 int w = bmp_info.bmWidth; 13 int h = bmp_info.bmHeight; 14 15 HDC hdc_mem = CreateCompatibleDC(hdc); 16 17 SelectObject(hdc_mem, hBmp); 18 19 BitBlt(hdc, 0, 0, w, h, hdc_mem, 0, 0, SRCCOPY); 20 StretchBlt(hdc, w, h, w * 20, h * 20, hdc_mem, 0, 0, w, h, SRCCOPY); 21 22 DeleteDC(hdc_mem); 23 DeleteObject(hBmp); 24 25 EndPaint(hwnd, &ps); 26 break; 27 }
//bitmap.rc MYBMP BITMAP "bitmap.bmp"

補足情報(FW/ツールのバージョンなど)

Windows10 VisualStudio2017community

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

リソースIDをdefineMAKEINTRESOURCEマクロで指定する必要があったと思います。
参考:Section4.2 ビットマップ画像の表示(リソースから)
ちなみにビットマップ読込は描画毎ではなく初期化時の1回のみでよいと思います。
resource.h

C++

1#define MYBMP 123

hoge.cpp

C++

1#include "resource.h" 2 3hBmp = LoadBitmap( hInst, MAKEINTRESOURCE(MYBMP));

投稿2018/03/08 01:03

編集2018/03/08 01:05
can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

LoadBitmapのグローバル定義のhInstanceと別にWinMainでも使われていたhInstanceをそのまま使っていましたが変数名を変えWinMain内で代入するよう記述することで解決しました。
同じ変数名でも別定義として扱われていたのでしょうか。
解答していただいたものも今後試していきたいと思います。ありがとうございました。

投稿2018/03/08 11:59

Weapon

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問