수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1620899
  • Today | 279
  • Yesterday | 482

Programming/MFC2007/03/08 10:02

입력 컨트롤에서 허용하는 문자를 제한하려면

원본 : http://www.debuglab.com/knowledge/edcontrol.html

1.요약

CEdit에서 클래스를 파생해 WM_CHAR 메시지를 처리하면 입력 컨트롤에서 특정 문자만 입력받을 수 있습니다.
우선 클래스위저드를 사용해 CEdit에서 파생된 클래스를 생성한 후 대화상자의 클래스에서 멤버 변수를 정의합니다. 그리고 OnInitDialog에서 CWnd::SubclassDlgItem을 호출해 입력 컨트롤을 서브 클래싱하면 됩니다.


2.본문

//대화상자 클래스 선언문 

Private : 

     CMyEdit m_wndEdit; //새로운 입력 컨트롤의 인스턴스 

//대화상자 클래스 구현인 .CPP 파일 

BOOL CSampleDialog::OnInitDialog()

{ 

    .... 

    //입력 컨트롤을 서브 클래싱한다. 

     m_wndEdit.SubclassDlgItem(IDC_EDIT, this); 

     ... 

}

이젠 클래스위저드를 사용해 WM_CHAR 메시지를 처리하면 됩니다. 먼저 nChar 인수를 평가해 어떤 동작을 수행할 것인지 지정해야 하는데 선택에 따라 문자가 출력되지 않게, 또는 문자를 그대로 전달하거나 문자를 변경해 전달할 수 있습니다.

질문처럼 nChar를 숫자로 제한하고 싶다면 CWnd::OnChar에 전달하고, 그렇지 않다면 CWnd::OnChar를 호출하지 않으면 됩니다.

//숫자만 출력한다. 

void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{ 

     //nChar가 숫자인지 확인한다. 

    if(IsCharAlphaNumeric(TCHAR)nChar) && !IsCharAlpha((TCHAR)nChar)) 

          CEdit::OnChar(nChar, nRepCnt, nFlags); 



}

더 나아가 문자를 변경하려면 변경된 nChar 인수만을 전달하면 되는데, 이때 절대 CEdite::OnChar를 호출해서는 안됩니다. 왜냐하면 CEdite::OnChar에서 wParam과 lParam을 처음 값으로 채우는 CWnd::Default를 부르기 때문입니다. 따라서 nChar를 변경하고 CWnd::DefWindowProc를 호출합니다. 방법은 다음과 같습니다.

//모든 문자를 대문자로 만든다. 

void CMyedit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{ 

     //문자를 그대로 변환한다. 

     if (IsCharAlpha((TCHAR)nChar)) 

          nChar = toupper(nChar); 

      //기본적인 OnChar 함수를 무시하고, 윈도우 기본 프로시저를 호출한다. 

     DefWindowProc(WM_CHAR, nChar, MAKEPARAM(nRepCnt,nFlags)) 

}



- 2001.08.13 Smile Seo -
"MFC" 카테고리의 다른 글
  • HBITMAP을 BMP 파일로 만들어 주는 함수 (0)2007/03/08
  • History ComboBox (0)2007/03/08
  • 입력 컨트롤에서 허용하는 문자를 제한하려면 (0)2007/03/08
  • WebBrowser 로 부터 키보드 메세지 가로채기 (0)2007/03/08
  • CDROM Insertion / Removal 감지하기 (0)2007/03/08
2007/03/08 10:02 2007/03/08 10:02
Posted by webdizen
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2686

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 551 552 553 554 555 556 557 558 559 ... 2998  Next»

RSS HanRSS
Blog Image
webdizen
이 곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (2998)
Webdizen (134)
Life (6)
Diary (16)
Blog (9)
IDEA (1)
Travel (10)
Book (14)
Photo (7)
Movie (7)
Music (13)
Leisure Sports (10)
Funny (5)
Hardware (119)
Software (120)
Windows (5)
Unix & Linux (119)
Installation (4)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (805)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (3)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (3)
Network (66)
Web (78)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • Sp_OA
  • 목표
  • 연예
  • 파티션
  • YouOS
  • 블로그코리아
  • Conceptual Modeling
  • 라스베이거스
  • 박물관
  • Uni-Processor
  • Monitoring
  • 조니워커 블랙
  • 패키지
  • 아바이 벌꿀 소주
  • 배열과 포인터
  • Events
  • Email
  • 홍보 동영상
  • 단축키
  • SQL Server 2005

Recent Articles

  • ASCII Code의 CRLF 제거 방법.
  • Hadoop 에서 c++ API 이용시....
  • Ubuntu Linux에서 Hadoop 구....
  • 내 심장을 한껏 뛰게한 "국가....
  • 스타 스키마 데이터베이스 설....

Recent Comments

  • ■ 온라인카지노 ▶ http://L....
    asdf 11/21
  • 그리고 혹시 해외여행자보험....
    kim 11/05
  • ★★실제 바다게임장과 똑같....
    asdf 11/04
  • sbsyama.co.to← 짱5000만당....
    asdf 11/04
  • ♡KicaZ??o(???) 바카라사....
    fdsf3fass 11/03

Recent Trackbacks

  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 02/11
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007
  • 마방진을 구하는 프로그램.
    Oranzie's BLOG 3 2007

Archive

  • 2009/09 (3)
  • 2009/08 (1)
  • 2009/03 (1)
  • 2009/02 (9)
  • 2009/01 (13)

Calendar

«   2009/11   »
일 월 화 수 목 금 토
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          

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.