EVC에서 다이얼로그에서 메인프레임의 타이틀 바꾸기..

여러 다이알로그를 띄우는 프로그램의 경우
그때그때마다 타이틀의 내용을 바꾸고 싶을때가 있습니다.
그런데 제가 아직 허접해서.. 쉽질 않더군여.. ㅡ.ㅡ
타이틀을 바꾸어도 포커스가 뷰로 옮겨가버리구여..

그래서 쉽게 바꿀 수 있는 방법을 생각해 봤습니다.

먼저. 메인프래임의 해더파일에 다음을 추가합니다.

public:
inline void SetFrameTitle(CString str) { SetWindowText( str ); };


그리고, 어디서든 참조하기 쉬운 해더파일에..
stdafx.h같은 곳에..

다음 코드를 추가합니다.
#define _SetTitle(str) { ((CMainFrame*)AfxGetMainWnd())->SetFrameTitle( (str) ); ::SetActiveWindow ( AfxGetMainWnd()->m_hWnd ); SetActiveWindow(); }

이렇게 하구나서.
무슨 다이알로그던 타이틀을 바꾸고 싶으면.
_SetTitle( _T("바꾸고 싶은 타이틀") );
이렇게만 코딩해 주면 됩니다.

일단 전 이렇게 구현했는데...
더 좋은 방법 있으시면 알려주세요.

좋은 시간 되세요. ^^

ODBC, OLE DB 셋팅

ODBC DSN을 사용하는 경우
①MS-SQL
DbCon.Open ("DSN=DSN이름;UID=아이디;PWD=패스워드")
②MS-Access
DbCon.Open ("DSN=DSN이름")

OLE-DB에서 지원하는 ODBC를 사용하는 경우
①MS-SQL
DbCon.Open ("Driver={SQL Server}; Server=DB서버이름; Database=데이터베이스이름; UID=아이디; PWD=패
스워드")
②MS-Access
DbCon.Open ("Driver={Microsoft Access Driver (*.mdb)};DBQ=mdb 파일의 실제 경로")

OLE-DB를 사용하는 경우
①MS-SQL
DbCon.Open ("Provider=SQLOLEDB;User ID=아이디;Password=패스워드;Initial Catalog=데이터베이스이름;Data Source=데이터베이스서버이름")
②MS-Access
DbCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mdb 파일 실제경로")

<출처>
http://www.taeyo.pe.kr/

컴파일시 꼬이는 헤더파일 방지..

#if !defined(HEADERFILE)

#define HEADERFILE


class MyClass
{
... . .. . .
. . . . . .
}

--- 해더 파일의 내용 ---


#endif

---------------------------------------------------------

이렇게 해주면 HEADERFILE라는 키워드가 define되어 있으면
#if ~~ #endif 안의 내용은 컴파일 되지 않습니다.
처음 한번만 컴파일하고, 다시는 컴파일 하지 않게 되는거죠.
그래서 해더파일이 꼬여있어도 에러를 발생하지 않습니다.

보통 위저드를 통해 클래스를 생성하면
HEADERFILE라는 키워드 대신.
클래스이름과 UUID가 조합되어 생성되더군요.

즐프~

레지스트리, ini파일 간단히 사용하기.

SetRegistryKey(_T("회사명")); 가 선언되어 있는 경우
(App 클래스의 Initinstance함수에 선언됨)

HKEY_CURRENT_USER->Software->회사명->프로그램명 안에
WriteProfileString(섹션, 엔트리, 값) 함수로 문자열값을 쓰거나
CString str = GetProfileString(섹션, 엔트리, 디폴트값) 함수로 문자열값을 가져올 수 있다.

SetRegistryKey()가 선언되어 있지 않다면, 실행화일과 동일한 이름에 확장자가 .ini형태로 \windows 폴더 밑에 INI파일이 생성되어 관리된다.


<출처>
http://www.dotnetx.info/


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

제가 실제 사용해 보니.
SetRegistryKey, WriteProfileString등의 함수가.
app의 맴버더군요.
app 클래스를 참조 하여 사용 하셔야 합니다.