전체 글
hELLO 코드블럭 사용자 모드상관없이 다크모드로 보이도록 하기
https://dawonny.tistory.com/370 hELLO, highlight.js 적용(feat. 글쓰기 버튼 만들기, 코드블럭 다크모드로 기본설정하기)안녕하세요! 오늘은 티스토리 스킨을 새로 바꿔보고, 바꾸면서 헤맸던 부분을 공유해드리려고해요. hELLO 스킨 일단 저는 hELLO 라고 하는 스킨을 적용했습니다. 개발자들에게 아주 인기 있는 스킨dawonny.tistory.com
데이터 베이스 제 4정규형 다치 종속 제거
https://blog.naver.com/koliaok/220430116124 정규화-제4정규화 다치 종속제거제 4 정규형(4NF)은 다가종속(Multi-valued Dependency)에 관한 정규화를 다루고 있다. 우리는 제 1 정...blog.naver.com 위 링크에서 다치 종속 제거에 대해서 이해했다!
[flutter] 포지셔널 파라미터와 네임드 파라미터
다트에서 함수 매개변수 지정 방법 두가지1. 포지셔널 파라미터 (입력순서대로 매칭)2. 네임드 파라미터 (변수지정해서 매칭)두개같이쓸때는 포지셔널, 네임드 순으로 사용포지셔널 파라미터함수에 순서대로 지정하는 값 default값 설정하는 매개변수는 한번에 [ ] 로 묶어 준다. default 는 뒤에 배치한다.void fun(int a, [int b=3]){} 호출 fun(1); fun(1,2);void fun(int a , [int b =6, int c=10]){} 호출 fun(1); fun(1, 2); fun(1, 2, 3);// 에러코드!! default 값 지정은 뒤에 배치해야함void fun(int a, [int b = 3] , int c){}네임드 파라미터중괄호{} 로 묶어야함. 매개변수 마지..
[MFC] CFileDialog 사용
//파일창 세팅 CFileDialog FileDlg(TRUE, "", "", OFN_OVERWRITEPROMPT, "txt (*.txt)|*.pdf|(*.pdf)", this); //원하는 경로로 열리도록 한다. FileDlg.m_ofn.lpstrInitialDir = want_filepath; //파일 열기 다이얼로그 창이 열린다. if (FileDlg.DoModal() == IDOK) { //전체 경로를 얻어온다. CString path = FileDlg.GetPathName(); //확장자 포함 파일명만 얻어온다. CString fileName = FileDlg.GetFileName(); //확장자를 뺀 파일 경로를 읽어온다. int i = path.ReverseFind('.'); CString d..
[C] 구조체 배열에 색상 스펙트럼을 설정하기
Issue 빨강 > 초록 > 파랑 순서로 자연스럽게 변할 수있도록 구조체 배열 변수 R,G,B에 값을 저장하고자 합니다! Solve 길이 200인 구조체 배열에 색상 스펙트럼 값을 저장할 것입니다. 우선, 구조체 배열을 선언하고, 빨강 > 연두 > 초록 > 청록색 > 파랑 순서로 변화를 줍니다. RGB변화는 다음과 같습니다. 빨강에서 연두로 가기위한 RGB (255, 0➡️255, 0) 연두에서 초록으로 가기위한 RGB (255 ➡️ 0,255,0) 초록에서 청록색으로가기위한 RGB (0, 255, 0 ➡️ 255) 청록색에서 파랑으로 가기위한 RGB (0, 255 ➡️ 0, 255) RGB값에 따른 실제 색상은 다음 링크에서 확인하시면됩니다. https://www.w3schools.com/colors/..
[MFC] CCombobox에 아무 값도 설정하지 않았을 때 Not Defined 표시하기
CCombobox에 사용자가 Item을 아직 선택하지 않았다는 것을 인지시켜야할 경우가 있습니다! 일종의 Null값을 보여주려고 합니다. 그래서 combox item에 Not Defined는 없지만 값을 선택하기 전에 기본적으로 Not Defined라고 보여주기로 했습니다. 아래와 같이 성별을 설정하는 ComboBox라고 가정해보겠습니다. CComboBox mycombo; mycombo.AddString("여"); mycombo.AddString("남"); 방법 1. CCombobox 의 Type을 Drop Down으로 설정해줍니다. 2. CCombobox에 값을 표시할 때 만약 설정값이 -1이면 Not Defined로 표시해줍니다. gender = -1 if(gender == -1){ mycombo.S..
[MFC] Window 캡쳐 이벤트 발생시키기
✔ 키보드를 누른 것과 동일하게 동작하도록 함 Window +shift+ s 를 눌렀다 떼는 동작을 실행 keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY, 0); //window 누름 keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0); //shift 누름 keybd_event(0x53, 0, KEYEVENTF_EXTENDEDKEY, 0); //s의 아스키코드값 누름 keybd_event (VK_LWIN, 0, KEYEVENTF_KEYUP, 0); //뗌 keybd_event(0x53, 0, KEYEVENTF_KEYUP, 0); //뗌 keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); //뗌
[MFC] 원하는 텍스트를 txt파일로 생성하기
[파일에 써서 원하는 위치에 txt생성] CFile file; CString str = _T("abc0-"); //원하는 텍스트 file.Open(_T("output.txt"),CFile::modeCreate|CFile::modeWrite,NULL); //파일이름과 모드설정 file.Write(str,str.GetLength()*sizeof(TCHAR)); //쓰기 file.Close(); //파일 닫기
[MFC] CDialogBar 조작하기
CDialogBar는 CMainFrame의 자식 윈도우 이다. View에서 다이얼로그바를 조작하기 위해서 CMainFrame을 가지고 와서 GetDlgItem으로 원하는 컨트롤 윈도우를 얻어와서 조작하면 된다. CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); CEdit* variable = (CEdit*)pFrame->m_wndDisControl.GetDlgItem(IDC_contoure_variable); variable->SetWindowTextA(_T("")); [컨트롤윈도우클래스(CButton, CEdit 등등)]
[MFC] 윈도우에서 제공하는 캡쳐기능을 사용하여 캡쳐하고, 캡쳐한 파일을 원하는 위치에 저장 시키기
[CFileFind를 이용해서 파일을 찾고 다른이름으로 저장 창 열어서 다른 위치에 저장시킨다.] 윈도우 캡쳐 ( window+Shift+s ) 로 화면 캡쳐를 하고 캡쳐된 알림을 클릭하게 되면 아래의 위치에 캡쳐이미지가 png파일으로 저장된다. "C:\Users\username\AppData\Local\Packages\Microsoft.ScreenSketch_8wekyb3d8bbwe\TempState\*.png" 특정 시간 이후에 생성된 파일을 해당 위치에서 찾은 후 다른이름으로 저장 창을 열어서 원하는 위치로 이동시킨다. (사용자는 원하는 위치로 이동이 아닌 그 위치로 바로 저장되었다고 생각하게된다.) CTime startTime, createTime;startTime = CTime::GetCurre..
[MFC] 다이얼로그 상하좌우로 창크기 늘릴수 있도록한다.
✔ 다이얼로그 상하좌우로 창크기 늘릴수 있도록한다. ✔ 다이얼로그 창크기를 키우면 다이얼로그 안에있는 리스트의 크기를 함께 늘린다. ✔ 창이 늘어날때 버튼의 위치도 같이 이동한다. [상하좌우 창 크기 늘리는 방법] 리소스 설정에서 border(테두리)의 속성을 Resizing으로 설정하면 윈도우 창 크기를 마우스로 조절이 가능하게 된다. [다이얼로그 안에 있는 리스트 크기 창비율에 맞춰서 늘리기] 리스트 속성에서 크기조절 유형 속성을 설정한다. '가로, 세로, 모두, 없음'을 설정할 수있다. 컨트롤 윈도우가 속해있는 부모 윈도우의 크기설정에 맞춰서 컨트롤 윈도우의 크기도 자동조정된다. * 윈도우의 크기는 MoveWindow()함수로 조정할 수있다. [윈도우의 창 크기에 맞춰 컨트롤 윈도우의 위치 이동] ..
[MFC] 기본 개념
1. CWnd 클래스 더보기 ● MFC = Microsoft Foundation Class : 마이크로 소프트사가 만든 c++기반의 윈도우 라이브러리, 객체 지향적인 구조를 갖는다. ● CWnd 클래스 : MFC에서 모든 윈도우 클래스의 기본 클래스 ● 상속관계 CObject > CCmdTarget > CWnd CCmdTarget: MFC의 메시지맵과 관련된 코드가 구현된 클래스 ● View에 새로운 윈도우를 보이게 하는 법 : View.h에 CWnd를 멤버 변수로 선언하고 View.cpp의 OnCreate함수내부에서 CWnd의 Create함수를 이용하여 생성한다. (Edit 형태 or Button형태) ● 부모 윈도우 설정 방법 - 윈도우의 부모 윈도우 설정 (CWnd.SetParent(부모윈도우)) ..
[MFC] visual studio 2015 MFC 상단 메뉴바에 하위메뉴 추가
MFC 메뉴 만들기 실습을 하려고하다 보니 하위메뉴를 추가하려고했는데 오류가 떴다 저기 빨간색 표시한부분에 더블클릭해서 글자를 입력했더니 메모리 참조 오류가 떴다. 이런 기본적인것에 오류가 뜬다니!!!!! devenv.exe 0x000000005d7f0cc9에 있는 명령이 0x00000000046005c의 메모리를 참조했습니다. read할 수없습니다. 더블클릭해서 글자입력하는 방법 말고 대표사진 삭제 사진 설명을 입력하세요. 하위메뉴를 추가할 부분에 우클릭을 해서 새로삽입을 누르니까 됐다 구글링해도 방법이 나오지 않았지만 이것저것 눌려보다보니 해결했다!!
[MFC] 마우스 위치의 윈도우 핸들값 얻기
윈도우 핸들값을 얻는 함수 HWND WindowFromPoint(POINT point); (WindowFromFoint()는 CWnd의 멤버함수입니다.) 예시 코드 HWND hWnd; //핸들 저장변수 POINT point; //마우스 포인터 저장변수 // 먼저 마우스의 위치를 얻고 GetCursorPos( &point ); // 얻은 위치값을 WindowFromPoint 함수의 인자로 넘겨주면 얻을 수 있다. hWnd = WindowFromPoint( point ); 먼저 GetCursorPos()함수를 이용하여 마우스가 위치한 곳의 포인터를 point 구조체에 저장한 후 WindowFromPoint()함수를 이용하여 현재 포인터에 있는 윈도우의 핸들값을 반환시켜 hWnd에 넘겨줍니다. [출처] htt..
[C] fgets, fscanf 차이
5 6 7 8 9 my String f라는 FILE에 위 문자열이 있다. 위 문자열은 아래와같이 구성되어져있는 것이다. 5 6 7 8 9\n my String fgets는 \n까지 읽어낸다. fscanf는 \n와 스페이스를 구분자로 보고 '\n 또는 스페이스' 다음부터, '\n 또는 스페이스' 전 까지 읽는다. 사용예제 file 내용 5 6 7 8 9 my String char str[1000]; fgets(str, "%s", f); // fgets가 \n까지 읽어내고 // str에는 \n를 제외한 "5 6 7 8 9" 까지 담기고 파일포인터는 다음줄의 m을 가리키고있다. print("%s", str); //"5 6 7 8 9" 가 출력된다. fscanf(f, "%s", str); //fscanf가 my..
프로그래머스 SQL 고득점 Kit - String, Date 문제 풀이 (Oracle)
프로그래머스 SQL 고득점 Kit 문제 풀이 위 링크에서 String,Date 문제를 풀고 풀이를 기록하는 게시글입니다. 1. 자동차 대여 기록에서 장기/단기 대여 구분하기 - 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼 - 같은날 대여하고, 반납하는 경우에는 대여기간을 0일로 계산하기 때문에 1일을 더해서 해당경우에 대한 대여기간 일수를 계산해야한다.!! 주의!! SELECT HISTORY_ID, CAR_ID, TO_CHAR(START_DATE,'YYYY-MM-DD') START_DATE, TO_CHAR(END_DATE,'YYYY-MM-DD') END_DATE, CASE WHEN (END_DATE-START_DATE+1 >= 30) THEN '장기 대여' E..
프로그래머스 SQL 고득점 Kit - JOIN 문제 풀이 (Oracle)
프로그래머스 SQL 고득점 Kit 문제 풀이 위 링크에서 JOIN 문제를 풀고 풀이를 기록하는 게시글입니다. 1. 주문량이 많은 아이스크림들 조회하기 - 주문량이 많은 순으로 3개만조회하기위해 인라인문으로 ORDER BY한 것을 받아와서, WHERE절에 ROWNUM칼럼을 사용해서 조회한다. SELECT FLAVOR FROM( SELECT FLAVOR FROM ( SELECT FLAVOR, SUM(TOTAL_ORDER) TOTAL FROM JULY GROUP BY FLAVOR UNION ALL SELECT FLAVOR, SUM(TOTAL_ORDER) TOTAL FROM FIRST_HALF GROUP BY FLAVOR) GROUP BY FLAVOR ORDER BY SUM(TOTAL) DESC) WHERE R..
프로그래머스 SQL 고득점 Kit - IS NULL 문제 풀이 (Oracle)
프로그래머스 SQL 고득점 Kit 문제 풀이 위 링크에서 IS NULL 문제를 풀고 풀이를 기록하는 게시글입니다. 1. 경기도에 위치한 식품창고 목록 출력하기 LIKE문에 문자열은 작은 따옴표를 써야한다. sql쓸 때 전부 작은 따옴표쓰기. SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, NVL(FREEZER_YN,'N') FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID 2. 업그레이드 할 수 없는 아이템 구하기 - IN 연산자에 NULL을 포함 시킬 수 없다! IN 연산자는 값의 목록을 비교하는 데 사용됩니다. 그러나 null 값은 목록에 포함되지 않기 때문에 조건에 null ..
프로그래머스 SQL 고득점 Kit - GROUP BY 문제 풀이 (Oracle)
프로그래머스 SQL 고득점 Kit 문제 풀이 위 링크에서 GROUP BY 문제를 풀고 풀이를 기록하는 게시글입니다. 1. 즐겨찾기가 가장 많은 식당 정보 출력하기 - 식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성 - 다시풀어볼만한 문제! SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO WHERE (FOOD_TYPE, FAVORITES) IN (SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE) ORDER BY FOOD_TYPE DESC; 2. 조건에 맞는 사용자와 총 거래금액 조회하기 - 완료된 중고 거래의 ..