API 트리뷰 적용 시 HTREEITEM 선언되지 않는 문제,
Main.cpp -
#include "stdafx.h"
void InsertChild(HTREEITEM, int); <- 이 부분에서 HTREEITEM 이 선언되지 않았다고 뜹니다.
...
void InsertChild(HTREEITEM pNode, int pid)
{
TVINSERTSTRUCT TI;
HTREEITEM Node;
int loop;
for(loop = 0; loop < sizeof(Rent_Area)/sizeof(Rent_Area[0]); loop++)
{
if(Rent_Area[loop].iParent == pid)
{
TI.hParent = pNode;
TI.hInsertAfter = TVI_LAST;
TI.item.mask = TVIF_TEXT | TVIF_PARAM;
TI.item.pszText = Rent_Area[loop].Title;
TI.item.lParam = loop;
Node = TreeView_InsertItem(hWnd, &TI);
InsertChild(Node, loop);
}
}
}
...
WndProc
{
switch(iMessage) {
case WM_CREATE:
InitCommonControls();
hWnd = CreateWindow(WC_TREEVIEW, "", WS_CHILD | WS_VISIBLE | WS_BORDER | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | TVS_TRACKSELECT | TVS_NOTOOLTIPS | TVS_SINGLEEXPAND, 10, 200, 250, 500, hWnd, NULL, g_hInst, NULL);
InsertChild((HTREEITEM)0, -1);
}
stdafx.h -
#pragma once
#pragma comment(lib,"comctl32.lib")
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN
#include
#include
#include "Resource.h"
...
현재 이런상태입니다.
commctrl.h 헤더파일을 봤는데,
...
struct _TREEITEM;
typedef struct _TREEITEM *HTREEITEM;
#define TVIF_TEXT 0x0001
#define TVIF_IMAGE 0x0002
#define TVIF_PARAM 0x0004
#define TVIF_STATE 0x0008
...
라고 HTREEITEM 형식이 typedef 되어있는데,
왜 컴파일 과정에서
error C2065: 'HTREEITEM' : 선언되지 않은 식별자입니다.
라고 뜨는걸까요..?
개발 환경은 Visual Studio 2010
개발 환경은 Visual Studio 2010 Win32 Application 입니다.
전혀 상관없는 답변이어서
전혀 상관없는 답변이어서 죄송합니다만...^^;;;;
Win32 API를 그냥 API라고 부르는 사람들이 많더군요.
아마도 API라는 단어를 처음에 Win32 API를 통해서 접하게되서 그런 것이 아닐까 추측해봅니다만...
어쨌거나 API는 일반 명사입니다.
Win32 API말고도 API는 많습니다.
이런 질문을 할 때에는 제목에 정확히 Win32 API라고 써주시는 것이 좋을 것 같습니다.
관련 없는 답변을 한 것이 죄송해서 구글링을 한 번
관련 없는 답변을 한 것이 죄송해서
구글링을 한 번 해봤습니다.
CommCtrl.h 를 include하면 될 것 같네요.
앗, 이미 include하셨군요. 죄송-_-
앗, 이미 include하셨군요. 죄송-_-
그래서 아래 댓글에 Win32 Application
그래서 아래 댓글에 Win32 Application 이라고 달아놨었어요~
댓글 달기