亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? guilib.cpp

?? 自己實現的一個好用的嵌入式GUI
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	 CDC *pDC = (AfxGetApp()->m_pMainWnd)->GetDC();
	 pDC->Rectangle(self->prec->x, self->prec->y, self->prec->x+self->prec->w, self->prec->y+self->prec->l);
     pDC->TextOut(self->prec->x, self->prec->y-self->font_y, self->caption );
     textOut(self);
	 (AfxGetApp()->m_pMainWnd)->ReleaseDC(pDC);
}
void append(char c, CText* self){
	
	if(self->endPos>=TEXT_BUFF_SIZE){
		//wait to add erro message
	}else{
		int i=0;
		for(i=self->endPos; i>=self->curPos; i--){
			self->text[i+1] = self->text[i];
		}
		self->text[self->curPos] = c;     	
		self->curPos++;
		self->endPos++;	
	}	
}
void delet(CText* self){

	if(self->endPos>0){
			int i=0;
			for( i=self->curPos; i<=self->endPos; i++){
				self->text[i-1] = self->text[i];
			} 
			self->curPos--;
			self->endPos--;
			
		}

}
void format(CText* self){

	int ncperLine = (self->prec->w-DSP_GAP*2)/self->font_x;
	char* ptext = self->text;
	int i=0;
	int j=0;
	int k=0;
	int nCount = 0;
	char* pch = NULL;
	int nLineBgn = self->dspLnBgn;
	int nLineEnd = self->dspLnBgn+(self->prec->l-DSP_GAP*2)/self->font_y;
	
//	CNode* pnode0 = NULL;
//	CNode* pnode1 = NULL;
    CVector* pvec = self->pformatVec;
    clear(self->pformatVec);
	push_back(ptext, self->pformatVec);
	for(i=0; i<=self->endPos-1; i++,ptext++){
		
		nCount++;
		if(nCount==ncperLine || *ptext==ENTER){
			push_back(ptext+1, self->pformatVec);
			nCount = 0;
		}
	}
	push_back(self->text+self->endPos, self->pformatVec);
    
	
	if(nLineEnd>pvec->size-1){
		nLineEnd = pvec->size-1;
	}
	
	for(j=0; j<self->endPos; j++){
		if(self->text+j==pvec->getByIndex(nLineBgn, pvec)){
		    self->dspChBgn = j;
			self->dspChEnd = j+i;
			break;
		}
  
	}
	i = self->dspChBgn;
	//for(j=0; j<pvec->size-1; j++){
	for(j=nLineBgn; j<nLineEnd; j++){
		//pnode0 = pvec->getByIndex(j, pvec);
		//pnode1 = pvec->getByIndex(j+1, pvec);
        k = 0;
        
		for(pch=(char*)pvec->getByIndex(j, pvec); pch<pvec->getByIndex(j+1, pvec); pch++,i++,k++){
			self->format_x[i] = self->prec->x+DSP_GAP + k*self->font_x;
			self->format_y[i] = self->prec->y+DSP_GAP + (j-nLineBgn)*self->font_y;
		}
  
	}

	
}
void textOut(CText* self){
    
	 format(self);
	 CDC *pDC = (AfxGetApp()->m_pMainWnd)->GetDC();
	 int i=0;
 
	 for(i=self->dspChBgn; i<self->dspChEnd; i++){

		pDC->TextOut(self->format_x[i], self->format_y[i], self->text[i]);
	 }
     (AfxGetApp()->m_pMainWnd)->ReleaseDC(pDC);
}

void paint(void* pobj){//, int wintype){
	
	int i;
	int wintype = getPtrType(pobj);
    void* pdata = NULL; 
	CVector* pvec = NULL;
	CWin* pwin = (CWin*)pobj;
	CButtn* pbtn = (CButtn*)pobj;
	CText* ptxt = (CText*)pobj;

	switch(wintype){
	case CWIN:
		drawWin(pwin);
		pvec = pwin->pchild_vec;

		for(i=0; i<pvec->size; i++){
			pdata = pvec->getByIndex(i, pvec);
			paint(pdata);//, wintype);
		}
		break;
	case CBUTTN:
		drawButtn(pbtn);
		break;
	case CTEXT:
		drawText(ptxt);
		break;
	}
	
}

void show(CWin* pwin){

//	CData* pdata = newCData(pwin, CWIN);
	void* pdata = NULL;
	paint(pwin);//, CWIN);

	int index = gl_activeWinVec->getIndex(pwin, gl_activeWinVec);//renew gl_activeWinVec

	if(index==-1){//not found, add directly

		gl_activeWinVec->push_back(pwin, gl_activeWinVec);

	}else if(index<gl_activeWinVec->size){
		
//		freeOne(pdata);//free temp variable
        pdata = gl_activeWinVec->getByIndex(index, gl_activeWinVec);
		gl_activeWinVec->eraseByIndex(index, gl_activeWinVec);
		gl_activeWinVec->push_back(pdata, gl_activeWinVec);
	}
	changeFocus();
	
}

void OnShow(CMssg* pmssg){

    void* pdata = pmssg->pdata;
	int nptrTp = getPtrType(pdata);
	if(nptrTp == CWIN){
		CWin* pwin = (CWin*)pdata;
		show(pwin);
	}

}

void OnClose(CMssg* pmssg){

	void* pdata = pmssg->pdata;
	int nptrTp = getPtrType(pdata);
	if(nptrTp == CWIN){
		CWin* pwin = (CWin*)pdata;
		close(pwin);
	}
	
}

void close(CWin* pwin){
    
	CNode* pnode = NULL;
//	void* pdata = NULL;//newCData(pwin, CWIN);
	void* pdata = NULL;
	gl_activeWinVec->eraseByKey(pwin, gl_activeWinVec);
//    eraseFocus();//for test
    paint(gl_desktop);//, CWIN);
	pnode = gl_activeWinVec->tail;
    if(pnode && pnode->pdata && pnode->pdata!=gl_desktop){

		pdata = pnode->pdata;
		paint(pdata);//, pdata->wintype);
	}
	changeFocus();
//	freeOne(pdata);
}

void OnKeyDown(CMssg* pmssg){
	CText* text = NULL;

	if(getPtrType(pmssg->pdata)==CTEXT){
		text = (CText*)pmssg->pdata;
		append(pmssg->lparam, text);
		if(text->parentWin){
			show(text->parentWin);
			setFocus(pmssg->pdata);
		}

		
	}
}

void OnDbKeyDown(CMssg* pmssg){
	CText* text = NULL;

	if(getPtrType(pmssg->pdata)==CTEXT){
		text = (CText*)pmssg->pdata;
		delet(text);
		append(pmssg->lparam, text);
		if(text->parentWin){
			show(text->parentWin);
		}
	}
}

void sendMessage(CMssg* pmssg){
	if(pmssg){
		push_back(pmssg, gl_mssgVec);
	}
}
CMssg* waitMessage(){
	CMssg* ptemp = NULL;
	for(;;){
		if(gl_mssgVec->size>0){
			ptemp = (CMssg*)gl_mssgVec->head->pdata;
			eraseByKey(gl_mssgVec->head->pdata, gl_mssgVec);
			Sleep(100);
			return ptemp;
		}
	}
	return NULL;
}

int dispatchMessage(CMssg* pmssg){
	CWin* pwin = NULL;
	CButtn* pbtn = NULL;
	CText* ptxt = NULL;
	int winType = TYPE_DEF;
    if(pmssg->type==WM_DESTROY1){
		return 0;
	}
	if(pmssg->pdata){
		//gl_focus = pmssg->pdata;
		winType = getPtrType(pmssg->pdata);

		switch(winType){
		case CWIN:
			pwin = (CWin*)pmssg->pdata;
			
			if(pwin->winproc[pmssg->type] && pmssg->type!=WM_CHANGEFOCUS1 && gl_focus!=pwin->pExtra){
				setFocus(pwin);
			}
			if(pwin->winproc[pmssg->type] ){
					pwin->winproc[pmssg->type](pmssg);
			}
			break;

		case CBUTTN:
			pbtn = (CButtn*)pmssg->pdata;
			
			if(pbtn->winproc[pmssg->type] && pmssg->type!=WM_CHANGEFOCUS1 && gl_focus!=pbtn->pExtra){
				setFocus(pbtn);
			}
			if(pbtn->winproc[pmssg->type]){
				   pbtn->winproc[pmssg->type](pmssg);
            }
			break;

        case CTEXT:
			ptxt = (CText*)pmssg->pdata;
			
			if(ptxt->winproc[pmssg->type] && pmssg->type!=WM_CHANGEFOCUS1 && gl_focus!=ptxt->pExtra){
				setFocus(ptxt);	
			}
			if(ptxt->winproc[pmssg->type]){
					ptxt->winproc[pmssg->type](pmssg);
			}
			int tp = getPtrType(gl_focus->pdata);//for test
			break;
		
		}//switch
		
	}
//	freeOne(pmssg);
	return 1;
}
int enter_main_times = 0;//for test
char buff[20];           //for test
//////////////////////////////////////////////////////////////test////////////////////////////////////////////////////////

void main(){

//	int a = 10;
//	int i;
//	char* caption=NULL;
//	CVector* pv = NULL;
//	CData* pda = NULL;
//	CButtn* pbtn = NULL;
    
    CDC *pDC = (AfxGetApp()->m_pMainWnd)->GetDC();
	enter_main_times++;
	char* str = itoa(enter_main_times, buff, 10);
	pDC->TextOut(500, 200, str);
    CRect1* wrect1 = newCRect(60, 60, 140, 200);
	CRect1* brect1 = newCRect(80, 80, 40, 20);
	CRect1* brect2 = newCRect(80, 120, 40, 20);
	CRect1* brect3 = newCRect(80, 160, 40, 20);
    CRect1* trect1 = newCRect(80, 160, 100, 80);

	CWin* win1 = newCWin(wrect1,"win1");
	CButtn* butn1 = newCButtn(win1, brect1, "butn1");
	//CButtn* butn2 = newCButtn(win1, brect2,  "butn2");
    //CButtn* butn3 = newCButtn(win1, brect3,  "butn3");	
	CText* text2 = newCText(win1, trect1, "text2", 8, 16);

	CWin* win2 = newCWin(wrect1, "win2");
	CButtn* butn4 = newCButtn(win2, brect2, "butn4");
    CText* text1 = newCText(win2, trect1, "text1", 8, 16);
	CMssg* pmssg0 = NULL;
    iniGui(win2);

    append('1',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('<',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
/*	append('9',text1);
	append('1',text1);
	append('1',text1);
//	append('0',text1);
	append('2',text1);

	append('2',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
	append('9',text1);
	append('1',text1);
	append('1',text1);
//	append('0',text1);
	append('2',text1);

	append('3',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
	append('9',text1);
	append('1',text1);
	append('1',text1);
//	append('0',text1);
	append('2',text1);

	append('4',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
	append('9',text1);
	append('1',text1);
	append('1',text1);
	append('<',text1);
	append('2',text1);

	append('5',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
	append('9',text1);
	append('1',text1);
	append('1',text1);
	append('<',text1);
	append('2',text1);

    append('6',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
	append('9',text1);
	append('1',text1);
	append('1',text1);
//	append('0',text1);
	append('2',text1);

	append('7',text1);
    append('2',text1);
	append('3',text1);
	append('4',text1);
	append('5',text1);
	append('6',text1);
	append('7',text1);
	append('8',text1);
	append('9',text1);
	append('1',text1);
	append('1',text1);
	append('<',text1);
	append('2',text1);
	append('<',text1);*/
//	text1->curPos--;
//	append('2',text1);
//	delet(text1);
//	butn1->winproc[WM_CLICK1] = butn1_OnClick; 
//	butn4->winproc[WM_CLICK1] = butn4_OnClick;
	//addComponent(win1, butn1, CBUTTN);
	//addComponent(win1, butn2, CBUTTN);
	//addComponent(win1, butn3, CBUTTN);
	
    text1->dspLnBgn = 0;
	
	
//	pv = win1->pchild_vec;
//	CDC *pDC = (AfxGetApp()->m_pMainWnd)->GetDC();
	void* pdata = gl_activeWinVec->tail->pdata;//newCData(win1, CWIN);
	CMssg* pmssg = newCMssg(text2, WM_KEYDOWN1, 's', 0);
	//paint(pmssg);
// 	OnChangeFocus(pmssg);
//	OnChangeFocus(pmssg);
//	OnDbKeyDown(pmssg);
    CMssg* pmssg1 = newCMssg(win1, WM_SHOW1, 0, 0);
	CMssg* pmssg2 = newCMssg(win1, WM_CHANGEFOCUS1, 0, 0);
	CMssg* pmssg3 = newCMssg(butn1, WM_CHANGEFOCUS1, '8', 0);
	CMssg* pmssg4 = newCMssg(text2, WM_CHANGEFOCUS1, 'w', 0);
	CMssg* pmssg6 = newCMssg(win1, WM_CLOSE1, 'w', 0);
	CMssg* pmssg7 = newCMssg(win2, WM_CLOSE1, 'w', 0);
	CMssg* pmssg8 = newCMssg(win2, WM_SHOW1, 'w', 0);
	CMssg* pmssg9 = newCMssg(text1, WM_KEYDOWN1, '5', 0);
	CMssg* pmssg10 = newCMssg(text1, WM_TRIKEYDOWN1, 'v', 0);
	CMssg* pmssg11 = newCMssg(butn4, WM_CLICK1, 'v', 0);
    CMssg* pmssg5 = newCMssg(text2, WM_DESTROY1, '9', 0);
	sendMessage(pmssg1);

//	OnChangeFocus(pmssg2);
	sendMessage(pmssg1);
	sendMessage(pmssg2);
	sendMessage(pmssg3);
//	OnKeyDown(pmssg3);
//	sendMessage(pmssg3);
	

	sendMessage(pmssg4);
	sendMessage(pmssg6);
	sendMessage(pmssg7);
	sendMessage(pmssg8);
	sendMessage(pmssg9);
	sendMessage(pmssg10);
	sendMessage(pmssg11);
//	sendMessage(pmssg5);

	
	sendMessage(pmssg5);
//  sendKeyMssg(nChar);
//	CMssg* pmssg5 = newCMssg(text1, WM_KEYDOWN1, 'w', 0);
//	OnKeyDown(pmssg1);

//    OnChangeFocus(pmssg);
/*	OnChangeFocus(pmssg);
	OnChangeFocus(pmssg);
	OnChangeFocus(pmssg);
	win1->winproc[WM_CHANGEFOCUS1](pmssg);*/
 
   for(int j=0;j<1000;j++){
	
		pmssg0 = waitMessage();
		if(!dispatchMessage(pmssg0)){
			break;
		}
		
//		freeOne(pmssg0);

	}
   int i = getPtrType(gl_focus->pdata);//for test
   //eraseFocus();//for test
	freeAll();
    
//	enter_main_times--;
//    str = itoa(enter_main_times, buff, 10);
//	pDC->TextOut(500, 220, str);
	(AfxGetApp()->m_pMainWnd)->ReleaseDC(pDC);
   
}
//void sendKeyMssg(UINT nChar){
//	CMssg* pmssg = newCMssg(gl_focus->pdata, WM_KEYDOWN1, nChar, 0);
//	sendMessage(pmssg);
//}
void OnButtnClick(CMssg* pmssg){
	
	CButtn* butn = NULL;

	if(getPtrType(pmssg->pdata)==CBUTTN){
		butn = (CButtn*)pmssg->pdata;
			close(butn->parentWin);

	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文在线一区二区| 国产精品国产三级国产有无不卡| 日韩午夜小视频| 中文字幕一区不卡| 韩国在线一区二区| 欧美日韩午夜精品| 国产精品毛片久久久久久| 久久99久国产精品黄毛片色诱| 色综合激情久久| 国产精品女主播av| 国产一区二区三区蝌蚪| 91精品国产综合久久婷婷香蕉| 国产午夜精品一区二区| 蜜桃视频一区二区三区| 欧美日韩中字一区| 亚洲天天做日日做天天谢日日欢 | 中文字幕在线观看不卡| 精品一区二区成人精品| 91精品午夜视频| 亚洲成人午夜电影| 欧美午夜精品久久久久久孕妇| 亚洲天堂免费看| 99久久精品免费观看| 国产精品久久久久久一区二区三区 | 国产亲近乱来精品视频| 久久99最新地址| 欧美一区二区三区公司| 日本aⅴ精品一区二区三区| 欧美日韩精品三区| 日本va欧美va精品发布| 欧美一区二区三区系列电影| 天堂影院一区二区| 欧美夫妻性生活| 日本成人在线视频网站| 日韩三级在线观看| 久久99精品久久久久婷婷| 日韩免费高清电影| 国产在线精品视频| 中国av一区二区三区| 99久久久久免费精品国产| 亚洲欧美另类图片小说| 欧美性三三影院| 日韩和的一区二区| 欧美大片一区二区| 国产黄色91视频| 亚洲欧美国产三级| 91精品久久久久久久91蜜桃| 青青草97国产精品免费观看无弹窗版| 5858s免费视频成人| 免费在线观看不卡| 国产欧美一区二区三区沐欲 | 最新国产の精品合集bt伙计| av不卡免费电影| 亚洲国产人成综合网站| 日韩精品一区二区在线| 国产成人在线视频网站| 亚洲乱码日产精品bd| 欧美高清激情brazzers| 国产精选一区二区三区| 亚洲免费在线观看视频| 欧美一级片在线| 成人精品视频一区二区三区尤物| 亚洲天堂av一区| 日韩欧美在线一区二区三区| 国产成人综合网| 亚洲成a人v欧美综合天堂| 久久影院午夜论| 91福利国产成人精品照片| 久久66热re国产| 亚洲天天做日日做天天谢日日欢 | 久久精品人人爽人人爽| 日本精品免费观看高清观看| 久久99精品国产麻豆不卡| 成人欧美一区二区三区视频网页| 欧美一区二区三区男人的天堂| 白白色亚洲国产精品| 另类综合日韩欧美亚洲| 亚洲午夜一二三区视频| 国产欧美日韩亚州综合| 91麻豆精品国产综合久久久久久| 国产成人av资源| 男人的天堂亚洲一区| 亚洲精品福利视频网站| 欧美国产精品v| 日韩一区二区三区在线| 色哟哟欧美精品| 波多野结衣亚洲| 国产suv精品一区二区6| 日本不卡视频在线| 亚洲高清视频的网址| 中文字幕中文字幕一区二区| 精品国产91久久久久久久妲己 | 欧美精品一区男女天堂| 69久久99精品久久久久婷婷| 91丨porny丨中文| 国产乱码精品一品二品| 日本一区中文字幕| 婷婷开心激情综合| 一区二区高清在线| 亚洲情趣在线观看| 国产欧美va欧美不卡在线| 欧美成人性福生活免费看| 91精品免费在线| 欧美精品一二三| 欧美日韩在线观看一区二区 | 盗摄精品av一区二区三区| a在线播放不卡| 成人aa视频在线观看| 国产成人精品亚洲日本在线桃色| 国产综合久久久久久久久久久久| 日韩av网站在线观看| 亚洲亚洲人成综合网络| 亚洲午夜羞羞片| 水野朝阳av一区二区三区| 亚洲1区2区3区视频| 亚洲成人自拍一区| 午夜精品久久久| 欧美bbbbb| 久久99国产精品成人| 国产主播一区二区| 国产mv日韩mv欧美| 91一区二区在线观看| 91麻豆国产在线观看| 日本韩国欧美一区二区三区| 色香蕉久久蜜桃| 3d动漫精品啪啪1区2区免费| 日韩视频在线你懂得| 久久久久久久网| 亚洲欧美综合在线精品| 亚洲综合成人在线视频| 婷婷国产在线综合| 久久国产日韩欧美精品| 成人福利电影精品一区二区在线观看 | 亚洲成av人片在线| 久久99九九99精品| 99久久婷婷国产综合精品电影| 99久久综合精品| 精品视频免费在线| 欧美成人bangbros| 亚洲欧洲日韩av| 亚洲va天堂va国产va久| 久久激五月天综合精品| 懂色av中文一区二区三区| 91国产精品成人| 日韩一区二区电影网| 日本一区二区三区久久久久久久久不 | 亚洲综合小说图片| 狠狠色综合日日| 色综合视频一区二区三区高清| 欧美日韩国产一级片| 久久久久成人黄色影片| 亚洲影院久久精品| 国模大尺度一区二区三区| 在线观看视频一区二区| 2020国产精品久久精品美国| 一区二区三区四区不卡在线| 美腿丝袜亚洲色图| 在线看日本不卡| 国产亚洲人成网站| 婷婷开心久久网| 99久久精品国产一区| 欧美变态口味重另类| 亚洲一卡二卡三卡四卡无卡久久| 精品一区二区av| 欧美日韩一级片在线观看| 国产精品乱码一区二三区小蝌蚪| 亚洲va在线va天堂| 91色视频在线| 精品理论电影在线| 亚洲成人动漫在线免费观看| 韩国一区二区三区| 555夜色666亚洲国产免| 亚洲精品你懂的| www.色精品| 国产欧美日本一区二区三区| 日韩成人dvd| 欧美亚洲一区三区| 亚洲视频图片小说| 成人动漫av在线| 日本一区二区三区电影| 蜜桃精品在线观看| 欧美午夜理伦三级在线观看| 中文字幕一区二区三区四区不卡| 国产综合色精品一区二区三区| 欧美美女激情18p| 亚洲高清免费在线| 欧美中文字幕一区二区三区 | 国产精品久久久一区麻豆最新章节| 免费一区二区视频| 日韩你懂的在线观看| 三级久久三级久久久| 欧美疯狂做受xxxx富婆| 天堂一区二区在线免费观看| 欧美曰成人黄网| 亚洲最新视频在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 五月天一区二区三区| 欧美三级中文字幕| 视频一区二区三区中文字幕| 欧美性大战xxxxx久久久|