- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springboot
- view 획득
- group by
- Activity 전체화면
- 시간대별 통계
- 터치좌표 view
- 피쉬랜드
- Back 키 클릭 감지
- 스크롤적용
- reactnative
- rn
- MySQL
- SQL
- mybatis exception
- springboot 재가동
- 코드로 서버 재실행
- 가변영역 스크롤
- MariaDB
- c언어
- pid 찾아 kill
- kill -9
- sql exception
- vc++
- CentOS
- 파티션 빠른 삭제
- 시간대 테이블생성
- MFC
- CSS
- 말줌임 CSS
- ffmpeg
목록전체보기 (114)
개발은 하는건가..
CSkinSliderCtrl 을 상속받아 원하는 클래스를 만든 후 아래와 같이 CustomDrawSliderBg, CustomDrawThumb, OnSliderPosChange 를 override 하여 원하는 형태로 DC 에 그리고 필요한 이벤트를 연결하면된다. 이벤트를 연결하면된다 #pragma once #include "SkinSliderCtrl.h" class CTestSliderCtrl :public CSkinSliderCtrl { public: CGCSSliderCtrl(); virtual ~CGCSSliderCtrl(); struct CSCallback { void(*OnSliderPosChange)(CGCSSliderCtrl *pSlider, int pos, void *pOwner); voi..
윈도우의 배율에 따라 컨트롤의 크기나 위치가 변경되는 것을 막으려고 DPI 인식을 높은 DIP 인식으로 변경해도 리소스 에디터에서 배치한 컨트롤의 위치가 배율에 영향을 받아 변경된다. 찾고 찾아도 한방에 처리할 수 있는 방법은 못찾았고 그나마 내가 생각한 쉬운 방법을 정리해본다. 우선 윈도우 배율을 변경하지 말고 100% 상태로 리소스 에디터에서 컨트롤들의 크기와 위치를 맞춘 후 실행해서 맞게 배치되었는지 확인한다. SetCtrlMove, PrintCtrlArrangePos 함수를 추가하고 OnInitDialog 에서 호출한다. PrintCtrlArrangePos 함수를 통하여 현재 윈도우의 자식 컨트롤 윈도우들을 모두 찾아 해당 위치를 로그로 출력한다. void CBaseDialog::SetCtrlMo..
HDC hDc = ::GetDC(0); FLOAT fDPIScaleX = GetDeviceCaps(hDc, LOGPIXELSX) / 96.0f; FLOAT fDPIScaleY = GetDeviceCaps(hDc, LOGPIXELSY) / 96.0f; ::ReleaseDC(0, hDc); fDPIScaleX, fDPIScaleY 에 각 가로 세로 비율이 저장되는데 보통은 가로세로 비율을 동일하게 나온다. 디스틀레이 설정에서 125% 또는 150% 로 설정했을 경우 각 1.25, 1.5 값을 반환한다. 배율되지 않은 원본 좌표가 필요할 경우 해당 좌표 / fDPIScaleX 해서 얻으면 되겠다.
디스크 단위 용량 확인 - df : 남은용량 확인(기본 명령어) - df -h : 깔끔하게 정리해서 보여줌 - df . : 현재 경로의 디스크용량만 확인 - df -m, -k : megabyte, kilobyte단위로 확인 현재 경로 아래의 사용량 확인 - du : 현재경로 아래 확인(기본명령어) - du -sh * : 현재 경로 아래 사용량 확인 1depth - du -a : 파일단위로 사용량 확인 출처 : https://gun0912.tistory.com/22

카메라의 Pan Tilt 조정에 모바일 게임에서 사용되는 가상 조이스틱 패드 같은 컨트롤이 필요하여 만들어 보았다. 사용방법 // GDI+ 를 사용하므로 Application 클래스에서 GDI+ 를 사용할 수 있도록 초기화 한다. // 리소스 편집기에서 Static 컨트롤을 올리고 컨트롤 변수를 생성하여 CPantTiltCtrl 로 서브클래싱한다. //CStaticm_PanTiltCtrl; CPanTiltCtrlm_PanTiltCtrl; // 컨트롤 변수를 통해 초기화 함수 호출 m_PanTiltCtrl.InitControl(GetAppImagePath(), this); m_PanTiltCtrl.SetBackgroundColor(RGB(32, 35, 54)); 컨트롤에서 사용되는 2개의 png 파일이 필..
설정 시간 이후 깨어나서 필요한 동작을 수행하도록 한다. 요즘 추세는 WAKEUP 을 하지 않고 WorkManager 를 이용하라고는 하지만 여전히 잘 동작하고 옛날 방식이 더 편한 감도 있다. AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent newIntent = new Intent(Constants.DELAYED_ALARM_WAKE_UP); newIntent.setPackage(getPackageName()); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, newIntent, PendingIntent..

x, y 의 좌표를 알고 있을 때 각도구하는 식 ? = atan2(Y, X) * 180 / 3.14 A 또는 B 와 같은 위치의 좌표를 알고 있을 때 원점 기준 50 만큼 떨어진 곳의 좌표을 얻어야 할 때 식 x = cos(radian) * 50; y = sin(radin) * 50; radin 값은 A 의 좌표 값을 위에 있는 식으로 각을 구한 뒤 아래 공식으로 구함.. radian = 각도 * PI / 180.0f;
컨텍스트 메뉴를 띄울 버튼이나 마우스 클릭 이벤트 핸들러를 추가 후 다음과 같이 사용하여 띄운다. void CMainWnd::OnRButtonDown(UINT nFlags, CPoint pt) { CGCSContextMenu cm; // ::GetCursorPos(&pt); // ::ScreenToClient(pThis->GetSafeHwnd(), &pt); cm.CreatePopupMenu(); // cm.AddMenu(커맨드ID, 메뉴텍스트, 메뉴 아이콘 이미지 파일 경로); cm.AddMenu(4000, _T("메뉴1"), _T("메뉴1용 아이콘 파일 전체경로")); cm.AddMenu(4001, _T("메뉴2"), _T("메뉴2용 아이콘 파일 전체경로")); cm.ShowPopupMenu(pare..
별도로 생성된 스레드에서 대상 윈도우의 DC 로부터 비트맵을 복제 후 ffmpeg 으로 인코딩 하여 파일로 저장한다. const double frameInterval = 1000.0 / 30; int calcInterval = 0; BYTE *pImageData = NULL; HDC hdcMemory = NULL; BITMAPINFO *pDibBitmapInfo = &(m_DibBitmapInfo); HBITMAP hDibBitmap = NULL, hOldBitmap = NULL;; LONGLONG nFrameCnt = 0; LONGLONG nStartTs = 0; DWORD dwSleep = 0; int startX = pThis->m_TargetRect.left; int startY = pThis->..
// Manifest Activity 의 속성 추가 // 가로 모드 setRequestedOrientation(Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); // 세로 모드 setRequestedOrientation(Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
# Header #pragma once #include #define MAX_DATA_LENGTH1500 class CUdpSocket { public: CUdpSocket(); ~CUdpSocket(); friend class CUdpServer; enum EResultCode { EUDP_NO_OPERATION = -2, EUDP_GENERAL_FAIL = -1, EUDP_SUCCESS = 0, EUDP_INVALID_DATA, EUDP_MAX_DATA_LENGTH_OVER, EUDP_CANCELED = WSAEINTR,// blocking operation canceled by WSACancelBlockingCall() EUDP_BAD_SOCKET = WSAEBADF,// bad socket des..
int GetSelectedItemIndex() { POSITION pos = m_lstView.GetFirstSelectedItemPosition(); if (pos == NULL) { return -1; } else { while (pos){ // 다중 선택으로 설정된 경우 반환 값을 리스트에 담아 리턴하도록 수정하면 됨. return m_lstView.GetNextSelectedItem(pos); } } return -1; }

안드로이드 P 이상에서는 전체 화면 시 다음과 같이 Activity 의 window 속성을 설정하여 전체화면 시 노치 영역까지 가득 채우게 해준다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { Window wnd = getWindow(); if (wnd != null) { wnd.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; } }
아래 코드 처럼 2개의 뷰를 시간차를 두고 에니메이션이 start 되는 상황에서 다른 activity 로 이동했다가 복귀 시 2개의 뷰 에니메이션이 시간차를 두지 않고 겹쳐서 에니메이션되는 현상 발생. 뷰를 Gone 시키는 코드도 안먹고 에니메이션 cancel 도 안되고 그랬으나 구글링 해보니 alpha 값을 0 으로 설정하면 사라진다는 글을 보고 적용해봤더니 정말 사라짐. @.@ void onResume() { ImageView iv_o2Circle = findViewById(R.id.iv_o2Circle); if (iv_o2Circle != null) { setViewAnimation(R.anim.ani_fade, iv_o2Circle); final ImageView iv_o2Circle2nd = f..