[ 문제의 코드 ]
HWND WINAPI function(...){ HWND hWnd; hWnd = CreateWindowExW( 0, L"SysLink",L"<A HREF=\"#\">Link Click</A>",WS_VISIBLE|WS_CHILD,X,Y,nWidth,nHeight,this->hWnd,(HMENU)nIdentNum,this->hInstance,NULL); ... return hWnd; }
|
SysLink 윈도우를 만드는데 . . . 아무리 만들어도 . . . 안된다 !
GetLastError() 로 확인해보니 ERROR_CANNOT_FIND_WND_CLASS 메시지를 뿜어됐던것이 사건의 시작.
3시간 가량을 헤매고 헤매어 검색해봤지만 . . .
아예 답변이 없거나 !
RegisterClass 가 선언되지 않았다 ! 라는 답변 뿐
윈도우 시스템 상 전역으로 처리된 SysLink 가 클래스로 정의되어있지 않을리 없다 -_- . . .
혹시나 싶어 InitCommonControls 이 선언되지 않아서 그런걸까 . . . 해서 !
해봤지만 역시 안된다 . . .
스팀찬다.
기본적으로 시스링크 같은 경우엔 확장형 컨트롤이라 가정하고 . . .
일반 컨트롤과 다르게 따로 뭔가 처리를 해줘야 한다면 . . .
에 도착한 결론은 . .
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
.
이 녀석 -_- ; 선언해주어야 하옵니다.
평소 배포용으로 만들 프로그램을 프로그래밍 할 땐, 윈도우 스킨이 맛깔나지 않아서 항상 선언해줘서
문제가 없었는데, 이번 프로그램 만들면서
" 어차피 내가 쓸거니까 상관없잖아 ~ " 하면서 발코딩하면서 생긴 문제.
MSDN을 읽어보니
"The SysLink control is defined in the ComCtl32.dll version 6, and it requires a manifest or directive that specifies that version 6 of the DLL should be used if it is available." |
출처 : http://msdn.microsoft.com/en-us/library/windows/desktop/bb760706(v=vs.85).aspx
라 적혀있고 비쥬얼 스타일 키는 방식에 대해선
http://msdn.microsoft.com/en-us/library/windows/desktop/bb773175(v=vs.85).aspx
위와 같이 나와 있는데 결론은 메니페스트만 넣어주면 되는 결론이 나왔다. -_- ; ;
SysLink 외에 RichEdit 와 같은 확장형 컨트롤을 위하여 반드시 위 선언을 넣어주면 너무나 도움될거 같다.
광고, 악성코드 썰 좀 풀어보자. (4) | 2013.05.04 |
---|---|
[임시] 티스토리 스팸 덧글/방명록 차단. (8) | 2013.04.27 |
심심해서 풀어본 키젠미 (4) | 2013.04.06 |
심심해서 적어보는 C언어 간략한(?) 총정리. (0) | 2013.03.21 |
FSCH BETA 1.0v User Manual (2) | 2013.03.06 |
|
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |