반응형

아래와 같은 오류가 발생할때에는 프로젝트 환경이 유니코드환경일 경우이다.


'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t * ,...)' :

매개 변수 1을 'const char [6]'에서 'const wchar_t *'으로 변활할수 없습니다 


CString Format 멤버함수를 사용하기 위해서는

아래와 같이 수정하여 사용한다.


수정 전 :



CString strtest;
strtest.Format("%d",nIndex);


수정 후 :


CString strtest;
strtest.Format(_T("%d"),nIndex);


유니코드환경에서는 _T로 포맷스트링을 감쏴줘야한다.

반응형

출처 : http://makerj.tistory.com/127

C++ String 정리 (C++ 문자열)


C++11 환경에서 정리한 글입니다

또한 using namespace std를 한 상태임을 밝힙니다



[string 생성]


1 >>

string myString = "abcd";


2 >>

string myString;

myString = "abcd";


중요!

1번 방식으로는 'a'와 같은 char로 생성이 불가능하다.

따라서 'a'와 같은 char로 생성하려면 2번 방식을 써야한다

string myString;

myString = 'a' ( O )








[string 확장, 문자열 추가]


string myString = "abc";이라는 문자열이 있다면


myString += "blahblah"; 와 같이 추가할 수 있다


또는


myString.append("blahblah");와 같이 추가할 수 있다


한 글자. 즉 char를 append로 확장하려면


myString.append("a"); 와 같이 하면 된다. myString.append('a');는 불가능하다






[string 길이]


string myString = "abc";이라는 문자열이 있다면


myString.size()

myString.length()


으로 문자열의 길이를 받을 수 있다.


*** size()와 length()는 결과가 완전히 동일하다


[string 길이 2]


myString.capacity()는 실제로 myString이 갖고 있는 길이를 반환한다

myString.max_size()는 myString이 최대로 갖을 수 있는 길이를 반환한다








[string의 특정 위치 문자 받기 (charAt 기능) ]


string myString = "abc";이라는 문자열이 있다면


myString.at(0) >>>>> 'a' 반환

myString.at(1) >>>>> 'b' 반환


이와같이 java의 charAt과 같은 기능을 수행한다.








[string에 있는 특정 문자 검색]


string myString = "This is my String";이라는 문자열이 있다면


myString.find("my");를 통해 "my"라는 문자열이 시작되는 위치를 반환한다


이를 활용하면


if (myString.find("my") != string::npos) {


 // "my"라는 문자열을 찾았을 때의 동작


}


으로 활용 가능하다








[string간의 문자열 복사]


string myString  = "acs";


string myString2 ;

myString2 = myString;


이게 다다.


myString의 문자열이 나중에 "bdjxzxddx"라고 바뀐다고 해도

myString2의 문자열은 여전히 "acs"다. 결국 myString2 에는 영향을 미치지 않는다.








[string간의 문자열 비교]


string myString = "abc";

string myStirng2 = "bbc"; 라는 문자열이 있다면


myString.compare(myString2)과 같이 비교한다.


이를 활용하면,


if (myString.compare(myString2) == 0) {


  // 두 문자열이 완전히 같은 문자열일때의 처리


} else if (myString.compare(myString2) < 0) {


  // myString의 문자열이 myString2보다 사전순으로 앞일 때 처리


} else if (myString.compare(myString2) > 0) {


 // myString의 문자열이 myString2보다 사전순으로 뒤일 때 처리



으로 활용 가능하다.








[string의 문자열 대체하기 (replace기능) ]


//myString의 "is" 문자열을 모두 "was"로 바꾸는 예제

string myString = "that is is is man";


int pos;

string replaceString = "was";


while( (pos = myString.find("is")) != string::npos) {


myString.replace(pos,replaceString.length(),replaceString);


}


의 방법으로 대체 가능하다.


그러나 이 방법은 대체 문자가 길어지면


기존의 문자를 덮어쓰기 하면서 대체가 이루어진다


ex) 

문자열이 "this is is is man" 일 때,

"is"를  위와 같은 방식으로 "asdgklsjdglsasdf"로 대체한다면

대체된 문자열은 "this asdgklsjdglsasdf"이 되어버린다




따라서 이 현상을 피해 기존의 문자열을 덮어쓰지 않고 진짜 대체만 한 구현은

아래와 같다. (제가 간단히 만든 것이므로 더 좋은 다른 구현방법이 많을 것입니다)


string myString = "that is is is cool is man";
string findString = "is";
string replaceString = "abcdef";

int pos;
while( (pos = myString.find(findString)) != string::npos){

	myString.erase(pos,findString.length());
	myString.insert(pos,replaceString);


}









[ 기본변수를 문자열로 ( toString 기능 ) ]

개발환경이 C++11을 지원해야함

string myString;

int myInt = 10;


myString = to_string(myInt) ;



[ 문자열을 기본변수로 ]

개발환경이 C++11을 지원해야함

string myString = "55";

int myInt ;


myInt = stoi(myString);

반응형

알아두면 유용한 토탈커맨더 단축키

http://900gle.info/227

외우기 위해 정리 해본다.. 자주 안쓰는 키들도 써보려고...

**
**

**ALT ****조합**

Alt + F1 왼쪽 패널 드라이브 바꾸기

Alt + F2 오른쪽 패널 드라이브 바꾸기

Alt + left/right : 작업한 폴더 간에 앞으로, 뒤로 이동하기

Alt + BackSpace : 한 단계 상위 폴더로 이동하기

Alt + down 작업했던 폴더 리스트 보여주기

Alt + Shift + Enter : 현재 폴더 안의 모든 하부 폴더의 용량을 p>

Alt + ENTER : 파일 속성 보기, 단축 메뉴의 속성과 동일한 기능

Alt + F4 토탈 커맨더 종료

**CTRL ****조합**

Ctrl + F1 'brief' 형식으로 리스트 보기

Ctrl + F2 'full' 형식으로 리스트 보기

Ctrl + Shift + F2 파일 주석 보기, Ctrl + Z로 주석을 달 수도 있음

Ctrl + F3 이름으로 리스트 정렬, 그냥 리스트 위에 Name 탭을 클릭하면 된다

Ctrl + F4 확장자로 리스트 정렬, 그냥 리스트 위에 Ext 탭을 클릭하면 된다

Ctrl + F5 날짜/시간으로 정렬

Ctrl + F6 파일 크기로 정렬

Ctrl + F7 정렬 않기

Ctrl + F8 반대쪽 패널에 탐색기 형식으로 폴더 구조 보여주기

Ctrl + F9 현재 커서 아래 파일을 연결 프로그램을 이용해 프린트하기

Ctrl + F10 모든 파일 보여주기

Ctrl + F11 실행파일만 보여주기

Ctrl + F12 정의된 파일만 보여주기

Ctrl + B 현재 패널에 하부 폴더의 리스트를 포함한 모든 파일 리스트 보여주기

Ctrl+Q : 파일 내용 빠르게 보기, 텍스트 문서나 이미지 파일 등을 반대쪽 패널에서 볼 수 있다

Ctrl + T 새 폴더 탭 열기 (활성화)

Ctrl + Shift + T 새 폴더 탭 열기 (활성화 하지 않음)

Ctrl + U 패널끼리 리스트 서로 바꾸기

Ctrl + Shift + U 패널끼리 리스트도 바꾸기 탭도 바꾸기

Ctrl + W 현재 활성화된 탭 닫기

Ctrl + Shift + W 모든 탭 닫기

Ctrl + D 디렉토리 핫리스트 열기, 자주 가는 폴더 등록시켜놓고 바로 가기

Ctrl + P : 현재 폴더 경로를 커맨드 라인에 붙여넣기

Ctrl + Enter : 현재 커서의 파일명을 커맨드 라인에 붙여넣기

Ctrl + Shift + Enter : 현재 커서의 파일명을 폴더명 포함해서 커맨드 라인에 붙여넣기

Ctrl + \ : 루트 폴더로 이동하기

Ctrl + PageUp : 루트 폴더로 이동하기 (위와 동일 기능)

Ctrl + left/right : 현재 커서가 위치한 폴더나 압축 파일의 내용을 반대편 패널에서 열기

Ctrl + L : 선택한 파일과 폴더의 총 용량 보여주기

Ctrl + UP 현재 커서의 폴더를 새 탭으로 열기

Ctrl + Shift + UP 현재 커서의 폴더를 다른 패널에 새 탭으로 열기

Ctrl + TAB 다음 탭으로 이동

Ctrl + Shift + TAB 이전 탭으로 이동

**Function Key ****조합**

F3 : 텍스트 문서 보기, 이미지 파일 보기, 사운드 파일 듣기 등을 할 수 있는 종합 뷰어.

Alt + F3 다른 파일 뷰어(외부 뷰어) 사용하기, 이건 옵션에서 지정

Shift + F3 여러 개의 파일이 범위로 선택되어 있을 경우, 현재 커서가 위치한 파일만 본다

**F4 **기본은 텍스트 파일 편집하기

Shift + F4 텍스트 문서 하나 생성하기

F5 : 파일 복사하기, 압축 파일 내에서 필요한 파일만 압축을 해제하는 데에도 유용

Shift + F5 같은 폴더 아래 파일 이름만 바꿔서 복사하기.

Ctrl + Shift + F5 선택한 파일의 링크 파일 만들기

Alt+ F5 : 선택한 파일들로 압축 파일 만들기 (나중에 다시)

Alt + Shift + F5 파일 압축하기

F6 : 선택한 파일들을 반대쪽으로 이동

Shift + F6 : 선택한 파일 이름을 그 자리에서 직접 바꾸기

Ctrl + M : 파일명 일괄적으로 바꾸기

F7 : 새 폴더 만들기

F8 : 파일 삭제하기, 휴지통으로 이동

Shift + F8 : 파일 완전 삭제

Alt + F8 커맨드 라인의 히스토리를 보여주기

Alt + F7 : 파일 검색, 원하는 파일명으로 찾기, 폴더-파일 크기-날짜-속성 등으로 고급 검색하기, 파일 내에 있는 문자열로 찾기 등 다양한 검색 기능을 제공

Alt + F9 : 압축 파일 풀기,

Alt + F10: 더 트리 구조로 열기,

**Shift ****조합**

Shift + F2 : 두 패널간에 파일 리스트 비교하기.

Shift + F10 : 단축 메뉴 보여주기, 즉 마우스 오른쪽 버튼을 누르면 나오는 팝업 메뉴

**NUM ****조합**

NUM + : 특정 파일만 일괄 선택하기

NUM - : 특정 파일만 일괄 선택 해제하기

NUM * 파일 선택 반전시키기

NUM / 선택 복구

Ctrl+ NUM + : 모두 선택하기

Ctrl+ NUM - : 모두 선택 해제하기

Alt + NUM + 현재 커서가 위치한 파일과 동일한 확장자의 모든 파일 선택하기

**FTP ****관련**

Ctrl + F : FTP 접속

Ctrl + Shift + F : FTP 접속 해제

Ctrl + Shift + M FTP 전송 모드 바꾸기

Ctrl + N 새로운 FTP 연결

via ~ 900gle.info :: 알아두면 유용한 토탈커맨더 단축키

'Utility' 카테고리의 다른 글

Windows ISO Downloader  (0) 2017.01.21
오딘(Odin) 3.09 버젼 다운로드  (0) 2016.01.10
Tumblr 블로그 이미지 자동으로 다운로드 받기  (0) 2015.10.14
아비라(AVIRA)백신  (0) 2015.06.21
HP USB Disk Storage Format Tool  (0) 2015.06.20
반응형

사용한 버젼은 CGridCtrl v2.20 이며 생성된 그리드컨트롤에

체크박스를 생성할때 아래와 같이 추가하면된다.

m_gridBinTable.SetCellType(nRow, nCol, RUNTIME_CLASS(CGridCellCheck));	//
pCell = (CGridCellCheck*)m_gridBinTable.GetCell(nRow, nCol);


반응형

그리드 컨트롤 행과 열의 사이즈를 자동으로 잡는 방법이다.



이 한줄만 추가해주면된다.

m_grid.Autosize();

반응형

출처 : http://bigmark.tistory.com/7


1. 부모 다이얼로그 생성


2. 자식 다이얼로그 생성


- 자식 다이얼로그 속성창에서 style은 child, border는 NONE 으로 설정 변경


3. 부모 다이얼로그의 헤더파일에서 해당 자식 다이얼로그 변수 포인터로 생성


CChildDlg *m_pChildDlg;



4. 부모 다이얼로그의 OnInitDialog에서



m_pChildDlg = new CChildDlg;
m_pChildDlg->Create( CChildDlg::IDD, this );
m_pChildDlg->ShowWindow( SW_SHOW );
m_pChildDlg->MoveWindow( rcDlg ); // 크기는 알아서 맞게 지정


이렇게 하면 자식 다이얼로그가 부모 다이얼로그에 붙는다.

+ Recent posts