2009/11/23 16:20

Rich edit 자동줄바꿈 기능 추가하기 [開發] 프로젝트 관련



Rich Edit Control 자동 줄바꿈 기능 추가하기






출처: http://snbosoft.tistory.com/48
-------------------------------------------------------------------------------------------------------------------

MFC 기본 제공 컨트롤인 CRichEditCtrl 에서 자동 줄 바꿈 설정이다.

네이버 지식인에 누가 수동으로 직접 줄바꿈 해줘야 한다고 그랬는데...

한동안 정말 그런줄 알고 수동으로 제작하고 있었다 -_-... 아놔~ 역시 믿을게 못된다!!


Appearance
- AutoHScroll : False
- Horizontal Scroll : False
- Multiline : True


2009/11/20 09:45

[mfc] 화면상에 노출된 윈도우 갱신 [開發] 프로젝트 관련



인덱싱 할때 인덱싱 창이 다른 윈도우 가려졌거나

포커스가 다른 윈도우로 넘어갈 경우 내부적으로 인덱싱은 되고 있지만

화면에 출력이 안나오는 버그에 사용할 코드.



출처: http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=275&page=9
----------------------------------------------------------------------------------------------------------------

// OnUpdateWindow() 함수가 호출되면 화면상 노출된 모든 윈도우(자식윈도우포함)를 찾아서
// 갱신명령을 보내게 된다.
void 클래스명::OnUpdateWindow()
{
    // 부모윈도우로 데스크탑을 사용하며 데스크탑의 차일드 윈도우에서 검색하며
    // 첫번째 차일드 윈도우 핸들부터 검색을 시작한다.
    HWND h_wnd = FindWindowEx(NULL, NULL, NULL, NULL);
    while(h_wnd != NULL){
       // IsWindow()함수는 윈도우 핸들이 유효한지 체크한다.
        // IsWindowVisible()함수는 윈도우가 WS_VISIBLE을 가지고 있는지를 리턴하기 때문에

        // 윈도우가 다른 윈도우에 가려져 있더라도 nonzero를 리턴한다.
        if(IsWindow(h_wnd) && ::IsWindowVisible(h_wnd)) FindWindowAndUpdate(h_wnd);

        // Z-Order상에 다음 윈도우부터 검색을 한다.
        h_wnd = FindWindowEx(NULL, h_wnd, NULL, NULL);
        ::InvalidateRect(h_wnd, NULL, TRUE);
    }
}
 

void 클래스명::FindWindowAndUpdate(HWND parm_h_window)
{
    // parm_h_window 에 속한 차일드 윈도우를 검색한다.
    HWND h_find_wnd = FindWindowEx(parm_h_window, NULL, NULL, NULL);
    while(h_find_wnd != NULL){
        if(IsWindow(h_find_wnd) && ::IsWindowVisible(h_find_wnd)){
            FindWindowAndUpdate(h_find_wnd);
            ::InvalidateRect(h_find_wnd, NULL, TRUE);
        }
        h_find_wnd = FindWindowEx(parm_h_window, h_find_wnd, NULL, NULL);
    }
}

2009/11/16 17:06

국가별 캐릭터셋 및 코드페이지 [開發] 프로젝트 관련

국가별 캐릭터셋 및 코드페이지


출처: http://www.softmail.co.kr/115

구분CharsetCodePage
한국어ks_c_5601-1987949
IBM EBCDIC(미국-캐나다)IBM03737
OEM 미국IBM437437
IBM EBCDIC(국제)IBM500500
아랍어(ASMO 708)ASMO-708708
아랍어(DOS)DOS-720720
그리스어(DOS)ibm737737
발트어(DOS)ibm775775
서유럽어(DOS)ibm850850
중앙 유럽어(DOS)ibm852852
OEM 키릴 자모IBM855855
터키어(DOS)ibm857857
OEM 다국 라틴 문자 IIBM00858858
포르투갈어(DOS)IBM860860
아이슬란드어(DOS)ibm861861
히브리어(DOS)DOS-862862
프랑스어(캐나다)(DOS)IBM863863
아랍어(864)IBM864864
북유럽어(DOS)IBM865865
키릴 자모(DOS)cp866866
현대 그리스어(DOS)ibm869869
IBM EBCDIC(다국 라틴 문자-2)IBM870870
태국어(Windows)windows-874874
IBM EBCDIC(현대 그리스어)cp875875
일본어(Shift-JIS)iso-2022-jp932
중국어 간체(GB2312)gb2312936
한국어ks_c_5601-1987949
중국어 번체(Big5)big5950
IBM EBCDIC(터키어 라틴 문자-5)IBM10261026
IBM 라틴어-1IBM010471047
IBM EBCDIC(미국-캐나다-유럽)IBM011401140
IBM EBCDIC(독일-유럽)IBM011411141
IBM EBCDIC(덴마크-노르웨이-유럽)IBM011421142
IBM EBCDIC(핀란드-스웨덴-유럽)IBM011431143
IBM EBCDIC(이탈리아-유럽)IBM011441144
IBM EBCDIC(스페인-유럽)IBM011451145
IBM EBCDIC(영국-유럽)IBM011461146
IBM EBCDIC(프랑스-유럽)IBM011471147
IBM EBCDIC(국제-유럽)IBM011481148
IBM EBCDIC(아이슬란드어-유럽)IBM011491149
유니코드utf-161200
유니코드(Big-Endian)unicodeFFFE1201
중앙 유럽어(Windows)windows-12501250
키릴 자모(Windows)windows-12511251
서유럽어(Windows)Windows-12521252
그리스어(Windows)windows-12531253
터키어(Windows)windows-12541254
히브리어(Windows)windows-12551255
아랍어(Windows)windows-12561256
발트어(Windows)windows-12571257
베트남어(Windows)windows-12581258
한국어(조합)Johab1361
서유럽어(Mac)macintosh10000
일본어(Mac)x-mac-japanese10001
중국어 번체(Mac)x-mac-chinesetrad10002
한국어(Mac)x-mac-korean10003
아랍어(Mac)x-mac-arabic10004
히브리어(Mac)x-mac-hebrew10005
그리스어(Mac)x-mac-greek10006
키릴 자모(Mac)x-mac-cyrillic10007
중국어 간체(Mac)x-mac-chinesesimp10008
루마니아어(Mac)x-mac-romanian10010
우크라이나어(Mac)x-mac-ukrainian10017
태국어(Mac)x-mac-thai10021
중앙 유럽어(Mac)x-mac-ce10029
아이슬란드어(Mac)x-mac-icelandic10079
터키어(Mac)x-mac-turkish10081
크로아티아어(Mac)x-mac-croatian10082
중국어 번체(CNS)x-Chinese-CNS20000
TCA 대만x-cp2000120001
중국어 번체(Eten)x-Chinese-Eten20002
IBM5550 대만x-cp2000320003
TeleText 대만x-cp2000420004
Wang 대만x-cp2000520005
서유럽어(IA5)x-IA520105
독일어(IA5)x-IA5-German20106
스웨덴어(IA5)x-IA5-Swedish20107
노르웨이어(IA5)x-IA5-Norwegian20108
US-ASCIIus-ascii20127
T.61x-cp2026120261
ISO-6937x-cp2026920269
IBM EBCDIC(독일)IBM27320273
IBM EBCDIC(덴마크-노르웨이)IBM27720277
IBM EBCDIC(핀란드-스웨덴)IBM27820278
IBM EBCDIC(이탈리아)IBM28020280
IBM EBCDIC(스페인)IBM28420284
IBM EBCDIC(일본어 가타카나)IBM29020290
IBM EBCDIC(프랑스)IBM29720297
IBM EBCDIC(아랍어)IBM42020420
IBM EBCDIC(그리스어)IBM42320423
IBM EBCDIC(히브리어)IBM42420424
IBM EBCDIC(한국어 확장)x-EBCDIC-KoreanExtended20833
IBM EBCDIC(태국어)IBM-Thai20838
키릴 자모(KOI8-R)koi8-r20866
IBM EBCDIC(아이슬란드어)IBM87120871
IBM EBCDIC(키릴 자모 러시아어)IBM88020880
IBM EBCDIC(터키어)IBM90520905
IBM 라틴어-1IBM0092420924
일본어(JIS 0208-1990 및 0212-1990)EUC-JP20932
중국어 간체(GB2312-80)x-cp2093620936
한국어(완성)x-cp2094920949
IBM EBCDIC(키릴 자모 세르비아어-불가리아어)cp102521025
Ext Alpha 소문자x-cp2102721027
키릴 자모(KOI8-U)koi8-u21866
서유럽어(ISO)iso-8859-128591
중앙 유럽어(ISO)iso-8859-228592
라틴어 3(ISO)iso-8859-328593
발트어(ISO)iso-8859-428594
키릴 자모(ISO)iso-8859-528595
아랍어(ISO)iso-8859-628596
그리스어(ISO)iso-8859-728597
히브리어(ISO-Visual)iso-8859-828598
터키어(ISO)iso-8859-928599
에스토니아어(ISO)iso-8859-1328603
라틴어 9(ISO)iso-8859-1528605
히브리어(ISO-Logical)iso-8859-8-i38598
일본어(JIS)iso-2022-jp50220
일본어(JIS-Allow 1 byte Kana)iso-2022-jp50221
일본어(JIS-Allow 1 byte Kana - SO/SI)iso-2022-jp50222
한국어(ISO)euc-kr50225
중국어 간체(ISO-2022)x-cp5022750227
일본어(EUC)euc-jp51932
중국어 간체(EUC)EUC-CN51936
한국어(EUC)euc-kr51949
중국어 간체(HZ)hz-gb-231252936
중국어 간체(GB18030)GB1803054936
유니코드(UTF-7)utf-765000
유니코드(UTF-8)utf-865001

2009/11/11 17:16

std::vector find method tutorial [開發] 기타 프로그래밍



std::vector의 find 사용



출처: http://www.korone.net/bbs/board.php?bo_table=etc_misc&wr_id=81&sca=C%2B%2B

std::vector의 find의 테스트를 위해 간단하게 만들어 보았습니다.

#include <stdio.h>
#include <vector>

#include <algorithm>

typedef std::vector<int> IntList;
typedef std::vector<int>::iterator IntListIt;

int get_random(size_t lo, size_t hi)
{
    return (int)((double)rand() /
        ((double)RAND_MAX + 1) * (++hi - lo) + lo);
}

int main()
{
    IntList list;

    int no = 0;
    for (size_t i=0; i<10; i++)
    {
        no = get_random(1, 100);
        list.push_back(no);
        printf("push_back : %d\n", no);
    }

    IntListIt it = find(list.begin(), list.end(), 40);
    if (it != list.end())
    {
        printf("found...\n");
    }

    return 0;
}



실행결과
push_back : 85
push_back : 40
push_back : 79
push_back : 80
push_back : 92
push_back : 20
push_back : 34
push_back : 77
push_back : 28
push_back : 56
found...

난수를 발생시켜 vector에 집어넣고, 발생된 값중 숫자 40이라는 값이 있는지 확인하는 코드입니다.
난수 발생이므로 실행할때 마다 40을 찾을 수도 못찾을 수도 있습니다.


2009/11/11 16:42

std::vector 사용하는 방법 [開發] 기타 프로그래밍



말그대로 std::vector 를 사용하는 방법이다.

지금까지 MFC에서 CArray 만 사용했었는데,

CArray랑 비슷하다.


    vector<int> anVector;

    for(int i=0; i<10; i++){
        anVector.push_back(i+1);
    }


    size_t ns = anVector.size();
    printf("Count: %d\n\n",ns);
  
    for(i=0; i<10; i++){
        printf("%d: %d\n",i+1,anVector[i]);
    }














 


1 2 3 4 5 6 7 8 9 10 다음



영어단어

블로그 스티커 - B형