TreeView表示がおかしいです。
Borland C++ (WindowsXP SP3)でWindowsAPIの練習中の人です。
メインウィンドウ(フレームウィンドウ)の中に子ウィンドウを作成してます。
その子ウィンドウの中でTreeView表示しているのですが、下の画像の様な表示になってしまいます。
何かお気づきになりましたら、ご教授お願いします。
一部、ソースを抜粋します。
----------------------------------------------------------------------------------
#include "header.h" // ヘッダーファイル
LRESULT CALLBACK TreeWndProc ( HWND, UINT, WPARAM, LPARAM );
BOOL Cls_OnTreeCreate(HWND, LPCREATESTRUCT);
void Cls_OnTreeSize(HWND, UINT, int, int );
void Cls_OnTreePaint(HWND);
static HWND hTree;
LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch ( msg ) {
HANDLE_MSG(hWnd, WM_CREATE, Cls_OnTreeCreate);
HANDLE_MSG(hWnd, WM_SIZE, Cls_OnTreeSize);
HANDLE_MSG(hWnd, WM_PAINT, Cls_OnTreePaint);
default:
return ( DefWindowProc ( hWnd, msg, wParam, lParam ) );
}
return 0L;
}
BOOL Cls_OnTreeCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct)
{
RECT rc;
HINSTANCE hInst;
HWND hwndTreeView;
HTREEITEM hParent1, hParent2, hParent3, hChild1, hChild2;
TV_INSERTSTRUCT tv;
InitCommonControls(); // コモンコントロールの初期化
GetClientRect (hwnd, &rc);
hInst = (HINSTANCE)GetWindowLong ( hwnd, GWL_HINSTANCE );
hwndTreeView = CreateWindowEx(
0,
WC_TREEVIEW,
"",
WS_CHILD | WS_BORDER | WS_VISIBLE | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT,
rc.left, rc.top, rc.right,rc.bottom,
// 0,0,0,0,
hwnd,
(HMENU)ID_MYTREE,
hInst, NULL );
TreeView_SetBkColor (hwndTreeView,RGB(0,0,0));
TreeView_SetTextColor (hwndTreeView,RGB(255,255,255));
TreeView_SetLineColor (hwndTreeView,RGB(125,125,255));
memset((char *)&tv, '\0', sizeof(tv));
tv.hInsertAfter = TVI_LAST;
tv.item.mask = TVIF_TEXT;
tv.hParent = TVI_ROOT;
tv.item.pszText = "粂井";
hParent1 = TreeView_InsertItem(hwndTreeView,
----------------------------------------------------------------------------------
文字数表示制限のため、ここまでです。
宜しくお願いします。
お礼
Wr5さんありがとうございます。 当方でも、()を外しましたらエラーが取れました。 プロトタイプ宣言時・実装時に()を付与するとあまり良くないのですね。 LRESULT OnTreeNotify(HWND, int, NMHDR FAR*); HANDLE_MSG(hWnd, WM_NOTIFY, OnTreeNotify); LRESULT OnTreeNotify(HWND hwnd, int idFrom, NMHDR FAR* pnmh ) { 処理 return 0L; // 必須←戻り値をつけないとマウスカーソル及びTreeViewの処理の不具合発生 } で、正常に動作することを確認しました。