⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 okoutlut.c

📁 OK系列PCI图象卡编程程序,MFC方式,压缩形式
💻 C
字号:
#include <windows.h>
#include <commdlg.h>

#include "resource.h"

#include "okapi32.h"

extern	HANDLE		hBoard;

BOOL FillOutLUT(HANDLE hBoard, short index);

BOOL APIENTRY IddOutLut(HWND hDlg,unsigned message,UINT wParam,LONG lParam)
{
	static short iPeriod;
	char tstr[80];
	char tg[4][10]={"625行","1249行","525行","1049行"};
	HWND shWnd;
	int i;

	//回显方式设置
	switch(message){
	case WM_INITDIALOG:
		CheckDlgButton(hDlg,IDC_FORWARD,TRUE);
		shWnd=GetDlgItem(hDlg,IDC_FRAMELINES);
		for(i=0;i<4;i++)
			SendMessage(shWnd,CB_INSERTSTRING,0,(LPARAM)(LPCSTR)tg[3-i]);

		SendMessage(shWnd,CB_SETCURSEL,0,0);

		iPeriod=(short)okSetVideoParam(hBoard,VIDEO_LINEPERIOD,-1);
		SetScrollRange(GetDlgItem(hDlg,IDC_SCROLLBAR1),SB_CTL,0,127,FALSE);
		SetScrollPos(GetDlgItem(hDlg,IDC_SCROLLBAR1),SB_CTL,iPeriod,TRUE);
		wsprintf(tstr,"%d",iPeriod);
		SetDlgItemText(hDlg,IDC_LINEPERIOD,tstr);
		break;
	case WM_HSCROLL:
		switch(LOWORD(wParam)){
        case SB_PAGEDOWN:
			iPeriod+=3;
			if(iPeriod>127) iPeriod=127;
			break;
        case SB_LINEDOWN:
			iPeriod++;
			if(iPeriod>127) iPeriod=127;
			break;
        case SB_PAGEUP:
			iPeriod-=3;
			if(iPeriod<0) iPeriod=0;
			break;
        case SB_LINEUP:
			iPeriod--;
			if(iPeriod<0) iPeriod=0;
			break;
        case SB_TOP :
			iPeriod=0;
			break;
        case SB_BOTTOM:
			iPeriod=127;
			break;
        case SB_THUMBPOSITION:
        case SB_THUMBTRACK:
			iPeriod=HIWORD(wParam);
			break;
		}
		SetScrollPos(GetDlgItem(hDlg,IDC_SCROLLBAR1),SB_CTL,iPeriod,TRUE);
		wsprintf(tstr,"%d",iPeriod);
		SetDlgItemText(hDlg,IDC_LINEPERIOD,tstr);
		break;
	case WM_COMMAND:
		switch(LOWORD(wParam)){
		case IDOK:
			//输出查找表
			if(IsDlgButtonChecked(hDlg,IDC_FORWARD)) FillOutLUT(hBoard,0);
			else FillOutLUT(hBoard,1);

			//输出行周期
			okSetVideoParam(hBoard,VIDEO_LINEPERIOD,iPeriod);

			//帧输出行数
			i=SendMessage(GetDlgItem(hDlg,IDC_FRAMELINES),CB_GETCURSEL,0,0);
			okSetVideoParam(hBoard,VIDEO_FRAMELINES,i);
            EndDialog(hDlg, TRUE);
            return (TRUE);
		case IDCANCEL:
            EndDialog(hDlg, TRUE);
            return (TRUE);
		}
		break;
	}
	return FALSE;
}

//--demo to fill outlut to these cards with out LUT
BOOL FillOutLUT(HANDLE hBoard, short index)
{
	BYTE	bLUT[768][3];
	short	i,start=0,num=180,gray=256;

	switch (index) {
		case 0:
			for(i=0;i<gray;i++) {
				bLUT[i][0]=(BYTE)i;
				bLUT[i][1]=(BYTE)i;
				bLUT[i][2]=(BYTE)i;
			}
			okFillOutLUT(hBoard, (LPBYTE)bLUT, start, gray);	
			break;
		case 1:
			for(i=0;i<num;i++) {
				bLUT[i][0]=(BYTE)(num-i);
				bLUT[i][1]=(BYTE)(num-i);
				bLUT[i][2]=(BYTE)(num-i);
			}
			for(i=num;i<gray;i++) {
				bLUT[i][0]=0;
				bLUT[i][1]=0;
				bLUT[i][2]=0;
			}
			okFillOutLUT(hBoard, (LPBYTE)bLUT, start, gray);	
			break;
		default:
			break;
	}

	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -