블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2024.12
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 31

공지사항

최근에 올라온 글

void ScreenToClient(HWND hwnd, RECT *r)//hwnd=다이얼로그 윈도우
{
	POINT *pt;
	pt = (POINT*)&(r->left);
	ScreenToClient(hwnd, pt);
	
	pt = (POINT*)&(r->right);
	ScreenToClient(hwnd, pt);
}

BOOL MyDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
    HWND h;
    RECT r;
	h = ::GetDlgItem(m_hWnd, IDC_STATIC1);
	::GetWindowRect(h, &r);
	::ScreenToClient(m_hWnd, &r);
    ...
}

'C언어,ARM' 카테고리의 다른 글

AVR Studio err  (0) 2020.09.26
CTabCtrl_CalSize  (0) 2020.09.26
excel RoundDown  (0) 2020.09.26
ANSI 유니코드 문자열 코드 변환 쉽게  (0) 2020.09.19
MFC 다이얼로그창 ESC키 종료 방지  (0) 2020.09.19
Posted by 안녕1999
, |

excel RoundDown

C언어,ARM / 2020. 9. 26. 23:28
#include "math.h"
double excel_RoundDown(double number, int decimalPlaces)
{
	double v, dx10;
	dx10 = pow(10, decimalPlaces);
	if (number >= 0.0f)
	{
		v = floor(number * dx10) / dx10;
	}
	else
	{
		v = -1*(floor(-1*number * dx10) / dx10);
	}
	return v;
}

수식설명결과

=ROUNDDOWN(3.2, 0)

3.2를 정수로 내림합니다.

3

=ROUNDDOWN(76.9,0)

76.9를 정수로 내림합니다.

76

=ROUNDDOWN(3.14159, 3)

3.14159를 소수점 아래 셋째 자리로 내림합니다.

3.141

=ROUNDDOWN(-3.14159, 1)

-3.14159를 소수점 아래 첫째 자리로 내림합니다.

-3.1

=ROUNDDOWN(31415.92654, -2)

31415.92654를 소수점 위 둘째 자리로 내림합니다.

31400

Posted by 안녕1999
, |
void strcpy_wc(wchar_t *buf, char *s)
{
	int nLen = MultiByteToWideChar(CP_ACP,
		0,
		s, -1,
		NULL,
		NULL);

	MultiByteToWideChar(CP_ACP,
		0,
		s, -1,
		buf,
		nLen);
}
void strcpy_cw(char *buf, wchar_t *s)//max=1024
{
	if (buf)if (s)
	{
		WideCharToMultiByte(CP_ACP,
			0,
			s, -1,
			buf, 1024,
			NULL,
			NULL);
	}
}
void strcat_wc(wchar_t *buf, char *s)
{
	if (buf)if (s)
	{
		while (*buf)buf++;
		int nLen = MultiByteToWideChar(CP_ACP,
			0,
			s, -1,
			NULL,
			NULL);

		MultiByteToWideChar(CP_ACP,
			0,
			s, -1,
			buf,
			nLen);
	}
}
void strcat_cw(char *buf, wchar_t *s)//max=1024
{
	if (buf)if (s)
	{
		WideCharToMultiByte(CP_ACP,
			0,
			s, -1,
			buf, 1024,
			NULL,
			NULL);
	}
}
Posted by 안녕1999
, |
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
	switch (pMsg->message)
	{
	case WM_KEYDOWN://ESC키 종료 방지
		if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE)
		{
			return TRUE;
		}
        else
        {
        }
		break;
	}
	return CDialog::PreTranslateMessage(pMsg);
}
Posted by 안녕1999
, |
소수점이하 0이라도, 필요한 경우도 있다.
예) 0.000001 => 0.00  //소수점이하가 모두 0이 아닌경우, 소수점이하 0을 모두 표시해준다.(경우에 따라서는 필요하다)

"1.0000000" => "1"
"1.5000000" => "1.5"
char *number_str_del_right_dot_zero(char *number)//소수점이 없는 경우0, 아니면, 마지막 숫자의 포인터 리턴
{
	char *p = number + strlen(number);
	p = strrchr(number, '.');//소숫점이 있는 경우
	if (p)
	{
		p = p + strlen(p)-1;
		while (p > number)
		{
			if (*p == '0')
			{
				*p = 0;
			}
			else if (*p == '.')
			{
				*p = 0;//소수점은 지우고 리턴
				break;
			}
			else
			{
				break;
			}
			p--;
		}
	}
	else
	{
		//소수점이 없다.
	}
	return p;
}
Posted by 안녕1999
, |
void CMyDlg::OnSelchangeCombo1()
{
	TCHAR buf[1024];
	m_CB.GetLBText(m_CB.GetCurSel(), buf);	//GetWindowText가 아니라, GetLBText사용해라.
	...
}
Posted by 안녕1999
, |
void EditWnd_ScrollBottom(HWND hwnd)
{
	::SendMessage(hwnd, EM_LINESCROLL, 0, 0xfffff);
}
Posted by 안녕1999
, |
HBRUSH CExeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

	if(pWnd->m_hWnd== m_hwnd_IDC_EDIT1)
	{
		hbr = GetStockBrush(BLACK_BRUSH);
		pDC->SetTextColor(RGB(0, 128, 0));
		pDC->SetBkColor(0);
	}
	else
	{

	}
	// TODO:  기본값이 적당하지 않으면 다른 브러시를 반환합니다.
	return hbr;
}
Posted by 안녕1999
, |

st-link download

C언어,ARM / 2020. 9. 12. 23:48
http://rt1-t.notification.st.com/r/?id=h263f56d,8fe5e04,8fe5e08&p1=www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-utilities/stsw-link009.html?dl=&p2=5DtEpUFESREeeqGVZXsH3A%3D%3D%2Czs%2BA1y9Ny4t0XJNAZBw6ixLGZ0N71t0VK4uEhQuyrh%2BOaHUtYKSv1VSszV%2BD%2FzXVpv%2BqRHhUZrGVf%2BfD4TdGQ%2FMbFP3kV4xWeVEcjc99LZBZG4MZU7nbW45QLbkFza9ZMOzbylhrLmWVNK3t5ckteolW%2Fu7T6Ig%2B%2BmQSpzXm0mHT3DYKePQ2CuaYrl1CbsNjTOciFOs4xhYdWOLLgz7tp2T%2BgKpulhhtHKLjg5hn8l92ugoiKFzqjoC3jjo5egRurkRFL5YsCNGTHLqq0oPMLzFIQx2YmvBIH5WsmT7LEIZqb23lL9G99DQmyy26JA6V&p3=&uid=YfAekH1+1woKjPJzRfmW9nFF7PmGklke
Posted by 안녕1999
, |
CreateFile(
      "\\\\.\\COM10",     // address of name of the communications device
      fdwAccess,          // access (read-write) mode
      0,                  // share mode
      NULL,               // address of security descriptor
      OPEN_EXISTING,      // how to create
      0,                  // file attributes
      NULL                // handle of file with attributes to copy
   );
Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함