본문 바로가기

VisualStudio.C++.C#/코딩팁,함수활용,단편   ( 156 )


VC++. 대화상자 윈도우 좌표 지정하기. 1. 대화상자 속성 중 "Absolute Align" True 설정해두고, 2. SetWindowPos 함수 호출하여 좌표지정. - 함수 호출예 : SetWindowPos(NULL, 100, 200, 0, 0, SWP_NOSIZE); // x좌표 100, y좌표 200 에 출력하라. - 이때 좌표란 주모니터의 좌상단 을 (0,0) 으로하는 화면 좌표 기준이며, 해당 좌표에 대화상자의 좌상단 꼭지점이 배치된다. - 함수 인자 중에 SWP_NOSIZE는 윈도우 크기는 변경하지 않는다는 설정이므로, 함수인자 중 width와 height 는 0으로 해도 됨. 3. 대화상자 실행초기 위치 지정하려면 OnInitDialog 내에서 SetWindowPos 함수 호출. 대화상자 실행이후 SetWindowPos 호출해도.. 2016. 4. 20.
VC++. 다중 모니터 , 화면 좌표 기준 . GetWindowRect 다중모니터의 좌표기준. 모니터 1개인 경우, 윈도우 영역 구하는 함수인 GetWindowRect 함수로 반환받는 CRect 는 좌상단 꼭지점을 (0,0) 으로 오른쪽 방향 +, 아래 방향 + 로 되어있다. 음수값은 없음. 모니터 2개 이상인 경우, "주 모니터"의 좌상단을 좌표원점으로 하고 주 모니터 왼쪽방향 -, 주 모니터 윗쪽 방향 - 로 된다. 예로 6개의 모니터가 있고, 주 모니터가 아래처럼 설정되어있다면, 주모니터의 좌상단이 좌표원점 (0,0). 위와 같은 모니터 배치 상황에서 프로그램 윈도우의 영역정보를 받는 함수 GetWindowRect 실행 CRect 값 확인 해보기. GetWindowRect 코드. Colored By Color Scripter™123456 // 본 윈도우의 rect 받기.. 2016. 4. 20.
VC++. 주 모니터 화면 픽셀수.바탕화면 작업영역, 작업표시줄 사이즈 구하기. 코드. Colored By Color Scripter™1234567891011121314151617181920212223242526 // 주모니터의 가로 세로 픽셀수. int screen_x = GetSystemMetrics(SM_CXSCREEN); int screen_y = GetSystemMetrics(SM_CYSCREEN); // 주모니터의 작업표시줄 제외한 영역 rect CRect rect_workarea; ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect_workarea, 0); // 작업표시줄 영역 구하기, 윈도우타이틀 Shell_TrayWnd임. HWND hWnd_TrayWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL); .. 2016. 4. 20.
VC++. 프로젝트 리소스에 비트맵 추가. 프로젝트 리소스 뷰에서 우마우스 클릭하여 "리소스 추가" 창에서 Bitmap 선택하고 버튼 새로만들기 클릭(아래그림). 생성된 비트맵의 아이디 설정하고(코드내에서 참조할때 필요한것), 비트맵의 속성에서 색상수, 사이즈 지정. 용도에 맞게 정하면 됨. 아래 예는 색상 256칼라. 사이즈는 높이 16, 폭 64로 한 것. 그림 그리기. 위 비트맵 편집기에서 픽셀단위로 그려서 이미지를 만들어도 되나, 고품질 이미지를 원할 때는 이미 제작된 이미지를 복사해오면 된다. 예. 그림판에서 이미지를 열고 복사해서 VC++ 비트맵 편집툴로 붙여넣기 하면 된다(아래 예 . 칼라 24비트로 했다.) 연관정보. Picture Control 에 Bitmap 표현하기 : http://igotit.tistory.com/1106 /.. 2016. 4. 19.
MFC. CFileFind - 파일 찾기 나열 하기. CFileFind MFC CFileFind 클래스 멤버함수 이용하면, 파일 찾기, 파일이름, 파일확장자, 파일경로 정보 처리 간단하게 구현된다. 폴더 핸들링도 가능. class CFileFind : public CObject Members Public Constructors Name Description CFileFind::CFileFind Constructs a CFileFind object. Public Methods Name Description CFileFind::Close Closes the search request. CFileFind::FindFile Searches a directory for a specified file name. CFileFind::FindNextFile Continu.. 2016. 4. 17.
USB HID 라이브러리. hid.lib, hidsdi.h, hidpi.h, hidusage.h USB HID 라이브러리 hid.lib 관련 파일. 프로그램에서 USB HID 기기에 접근하기 위하여, MS사 제공 hid.lib 를 이용하는 경우 관련 4개의 파일(아래 리스트) 필수이며 개발중 프로젝트에 포함시켜야 한다. 1. hid.lib2. hidsdi.h 3. hidpi.h4. hidusage.h 상기 4개 파일 확보방법. MS사의 WDK (Windows Driver Kit ) 의 일부로써 배포되고 있다. WDK10 설치 -> http://igotit.tistory.com/727 WDK 설치하면 생성되는 폴더 C:\Program Files (x86)\Windows Kits 내에 있음. 파일 hid.lib WDK설치경로에 hid.lib 파일이 여러 폴더에 분산되어 있다.즉, 아래와 같은 경로에 h.. 2016. 4. 4.
__toascii. 문자의 아스키코드 받기. 프로그램에서 특정 문자에 해당하는 아스키코드 값 받는 편한 함수. 코드 예. Colored By Color Scripter™ 1 2 3 4 5 6 7 8 9 CString cst = _T("ABCDEFGH"); wchar_t * my_wchar = cst.GetBuffer() ; cst.ReleaseBuffer(); uint8_t ascii_code[8]; for(int idx = 0; idx http://igotit.tistory.com/11 ///717. 2016. 3. 16.
Byte Order, Little Endian, Big Endian, MSB, LSB 개요. 2바이트 이상의 자료형을 메모리에 저장할 때 저장 최소단위 1바이트 단위 저장시 메모리 주소 작은 곳부터 LSB 먼저 저장되는지, 혹은 MSB 먼저 저장 되는지 단일하고 확고한 표준이 없고, 서로 반대되는 순서인 Little Endian, Big Endian 이 혼재되어있다. 리틀엔디안 빅엔디안 용어 자체는 걸리버 여행기에 나오는 삶은 계란 뭉퉁한 쪽을 먼저 까는 파를 빅엔디안, 뽀족한 쪽을 먼저 까는 파를 리틀 엔디안이라고 하는 것에서 가져온 용어. (참고로 나는 계란 옆구리 부터 깐다.) 메모리에 1바이트 단위 로 배치 할 때 메모리 주소의 작은 것에 최상위 바이트를 배치하는 것을 빅엔디안, 메모리 주소 작은것에 최하위 바이트를 배치하는것을 리틀 엔디안이라고 하는데... 하 ... 그냥 MSB.. 2016. 2. 7.
장치 클래스 GUID. The following classes and GUIDs are defined by the operating system. Unless otherwise noted, these classes and GUIDs can be used to install devices (or drivers) on Windows 2000 and later versions of Windows: Battery DevicesClass = BatteryClassGuid = {72631e54-78a4-11d0-bcf7-00aa00b7b32a}This class includes battery devices and UPS devices. Biometric DeviceClass = BiometricClassGuid = {53D29EF7-37.. 2016. 1. 30.
USB 연결/분리 검출, WM_DEVICECHANGE, OnDeviceChange, RegisterDeviceNotification,dht.h, 개요 PC 프로그램에서 USB 장치 연결, 분리등 장치 상태변경 감지 하기 위한 메시지 처리 방법. USB뿐만 아니라 Plug&Play 장치들에 모두 적용가능함. 구현방법 요점. 운영체제는 장치변경시 윈도우의 모든 응용프로그램(정확하게는 Top-level Window) 측으로 메시지 아이디 WM_DEVICECHANGE 를 전송하므로 이를 수신처리하면 되나, Visual C++ 의 클래스 위저드에서 WM_DEVICECHANGE 처리기 자동추가 기능 제공 안하므로 수동으로 코드 추가 해서 메시지 수신처리한다. 1. 운영체제에서 메시지 아이디 WM_DEVICECHANGE로 모든 application 측으로 장치연결, 분리 등의 상태변경 메시지를 전송한다.2. 수동으로 WM_DEVICECHANGE 받기위한 메시.. 2016. 1. 30.
FlowChartX 설치하기. 기본사용. 다이아그램 코드에서 구현하기. 멤버변수 m_FlowChart 추가하기. (아래 그림. )- 본멤버변수 추가과정에서 클래스 CFlowchrrtpro1 도 자동생성된다. 시험 실행하기. test 라는 단독실행프로그램에서 보이게 한예. FlowChartX 관련 클래스들 추가로 임포팅시키기. 메뉴 : Project -> Add Class... 클릭하여 뜬 창에서 MFC -> MFC Class From TypeLib 선택하고 버튼 Add 클릭하여 뜬 아래창에서 붉박의 type library 선택하고, Interfaces 에 있는 모든 것들의 class 생성시키려면 파랑색 박스 클릭하고 이후 class 중에 CFlowChart 는 앞의 과정에서 이미 생성된 것이므로 선택하여 버튼 < 클릭하여 제외시킨다. 한편, 랩퍼 클래스들이 종류가 너무 많아.. 2016. 1. 29.
MFC 응용프로그램 실행 인자 전달하기. 개요. MFC응용프로그램 실행시점 인자 전달된 것 코드에서 확보하는법. 필요성. 커맨드라인으로 응용프로그램 실행시키면서 인자 전달하고 프로그램내에서 인자 확보하여 처리 요구되는 경우. 이해사항. MFC CWinApp 에서 상속받은 응용프로그램은 코드에서 특별한 코드 작성 하지 않아도 인자 입력 받을 수 있게 구성되어있다. 한편, 커맨드라인으로 인자 전달하면서 실행시킨 경우 코드내에서 인자 받기 위해서는 LPTSTR 타입의 CWinApp의 멤버변수 m_lpCmdLine 값을 참조 한다. InitInstance 함수 내부에서 m_lpCmdLine 값 참조한다. 더보기 CWinApp::m_pCmdLine Corresponds to the lpCmdLine parameter passed by Windows to.. 2016. 1. 28.
DLL 의 절대 경로 알아내기. GetModuleFileName 개요. DLL 의 절대 경로 알아내기. 필요성. DLL 내에서 파일입출력 처리가 있는 경우 DLL내에서 경로처리를 하지 않은 경우 DLL을 로딩한 프로세스의 Current Directory 기준으로 경로 처리된다. DLL 파일이 있는 동일경로로 접근하기 위해서 DLL코드내에서 자신의 절대경로를 확인하여 접근할때 필요함. 구현방법. DLL 코드내에서 함수 GetModuleFIleName 또는 GetModuleFileNameEx 사용한다. 본 함수는 프로세스 코드에서 호출할수도 있고, DLL 코드에서 호출할 수도 있다. DLL 내에서 호출하는 경우는 관계없지만 프로세스 내에서 호출할때는 아래 처럼 함수를 달리 적용해야한다. GetModuleFIleName : DLL 이 현재 프로세스에서 로딩된 경우에만 사용.. 2016. 1. 28.
외부프로그램 실행시키기. CreateProcess, ShellExecute, WinExec 개요 외부프로그램 실행시키는 함수 3개(CreateProcess, ShellExecute,WinExec) 비교 및 CreateProcess 사용법 상세. 비교. WinExec - window3.1 때부터 제공된 함수이며 하위 호환성 때문에 아직도 남아있는것 MS에서는 이 함수 대신 CreateProcess 사용 권장. - UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow) 인자1:실행할 프로그램 커맨드라인. 인자2:실행시 윈도우 상태 보이기 안보이기등 지정. CreateProcess - 실행옵션 미세 설정가능. 실행시킬 때 인자전달 가능. - 반환값 : 대상프로그램이 실행되면 0 아닌값 , 실행되지 않으면 0반환. - 대상프로그램의 실행여부,실행실패원인,종료여부 확인가능. .. 2016. 1. 28.
STL Containers. vector, array, deque, list, forward_list 개요. STL Containers 기본지식. STL Containers The Standard Library provides various type-safe containers for storing collections of related objects. The containers are class templates; when you declare a container variable, you specify the type of the elements that the container will hold. Containers can be constructed with initializer lists. They have member functions for adding and removing elements.. 2016. 1. 20.
Stream Data (Real Time) 송수신 개체간 연결 형식 검토. 개요 - 문제정의. 문제 정의. 동일 프로세스 내의 개체들사이에서 Stream Data 를 전달해야하는 시스템에서, 구체적인 달성 방법은 3가지 방식이 있을 수 있다. 어떤 상황에서 어떤 방식이 유용한지 정리. 코드상에서 개체들간의 연결방식은 달라져도 달성해야할 기능적 상황은 동일하다. 즉, 피등록 개체의 버퍼에 데이터 입력되게 하고 즉시 리턴되게 하는것(즉, Non Blocking방식) . 큐에 데이터가 들어온 개체들은 자체 스레드에 의하여 큐버퍼에 있는 내용을 읽어서 이후 후처리를 스스로 진행한다. 주요개념. 개체들의 Q버퍼와 즉시리턴 why?앞의 글에서 즉시 리턴되게 하는 방식은 필수는 아니나, 1개의 개체에 여러 개의 수신할 개체들이 연결된 경우 각 개체들이 Q없는 것이라면 데이터 전송자 입장에서.. 2016. 1. 20.
문자열 복사. _tcscpy_s, strcpy_s, wcscpy_s, _mbscpy_s _tcscpy_s, strcpy_s, wcscpy_s, _mbscpy_s Copies a string. These versions of strcpy, wcscpy, _mbscpy have security enhancements, as described in CRT의 보안 기능. _mbscpy_s cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW. 구문복사 errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource ); errno.. 2016. 1. 18.
Window Types. Window TypesThis section contains the following topics that describe window types.Overlapped WindowsPop-up WindowsChild WindowsLayered WindowsMessage-Only WindowsOverlapped WindowsAn overlapped window is a top-level window that has a title bar, border, and client area; it is meant to serve as an application's main window. It can also have a window menu, minimize and maximize buttons, and scroll .. 2016. 1. 17.


 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5