📄 oppview.cpp
字号:
}
}
void COppView::DoPage()
{
int i, j, k, num, no;
CPageDlg dlg;
CString word;
CClientDC dc(this);
CPen pen;
CBrush brush;
pen.CreatePen(PS_SOLID, 1, RGB(0, 125, 255));
brush.CreateSolidBrush(RGB(0, 0, 255));
CPen *oldpen = dc.SelectObject(&pen);
dc.SetTextColor(RGB(0, 125, 255));
if(dlg.DoModal() == IDOK){
if(dlg.sign == 1){
num = dlg.m_nNum;
dc.SetTextColor(RGB(255,255,255));
loop_1 = 62; loop_2 = 60;
for(i=0; i<8; i++){
if(Page[i].num == num){
for(j=0; j<Page[i].page; j++){
word.Format("%d",no = j);
dc.TextOut(490, Page[i].loop1+20*j, word );
word.Format("%d",no = j + 2);
dc.TextOut(575, Page[i].loop1+20*j, word );
dc.TextOut(625, Page[i].loop1+20*j, "已分配"); //表格填充
}
for(j=Page[i].local, k=0; j<Page[i].local+Page[i].page; j++){
dc.TextOut(Frag[j+2].x, Frag[j+2].y, 92);
FillPage(Page[i].loop2 + 20 * k, 9); //内存填充
Frag[j].sign = 0;
k++;}//break;
}//else{ MessageBox("你输入的作业不存在!"); break;}
}
}
if(dlg.sign == 2){
Page[i_Status].num = dlg.m_nNum;
Page[i_Status].page = dlg.m_nPage;
Page[i_Status + 1].loop1 = Page[i_Status].loop1 + 20 * Page[i_Status].page;
Page[i_Status + 1].loop2 = Page[i_Status].loop2 + 20 * Page[i_Status].page;
loop_1 = 62; loop_2 = 60;
sign_1 += sign_2;
if(sign_1 <= 144){
for(j=sign_1; j<sign_1+Page[i_Status].page; j++){
loop_1 += 20 * sign_1;
word.Format("%d",no = j - 2 );
dc.TextOut(490, loop_1 + 20*(j-sign_1), word );
word.Format("%d",no = j );
dc.TextOut(575, loop_1 + 20*(j-sign_1), word );
dc.TextOut(625, loop_1 + 20*(j-sign_1), "已分配");
loop_1 = 62;
}
for(i=sign_1; i<sign_1+Page[i_Status].page; i++){
loop_2 += 20 * i;
dc.TextOut(Frag[i].x, Frag[i].y, 92);
for(j=1; j<=9; j++){
dc.MoveTo(321, loop_2 + 2*j);
dc.LineTo(418, loop_2 + 2*j);
}
loop_2 = 60;
Frag[i].sign = 1;
}
sign_2 = Page[i_Status].page;
Page[i_Status+1].local = Page[i_Status].local + Page[i_Status].page;
i_Status++;
}
else{ MessageBox("error!");}
}
}
}
void COppView::MoveWork()
{
int i,k,name;
CString word;
CMoveWork mov;
CClientDC dc(this);
CPen pen;
CBrush brush;
pen.CreatePen(PS_SOLID, 1, RGB(0,125,255));
brush.CreateSolidBrush(RGB(255,255,255));
CPen *oldpen = dc.SelectObject(&pen);
dc.SetTextColor(RGB(0,125,255));
if(mov.DoModal() == IDOK){
if(mov.sign == 1){
Mov[i_Sign].name = mov.m_name;
Mov[i_Sign].size = mov.m_size;
Mov[i_Sign].sign = i_Sign + 1;
Mov[i_Sign].start = start;
Mov[i_Sign + 1].begin = Mov[i_Sign].begin + Mov[i_Sign].size;
word.Format("%d",k = Mov[i_Sign].name);
dc.TextOut(300, 117+30*i_Sign, word);
word.Format("%d",k = Mov[i_Sign].size);
dc.TextOut(375, 117+30*i_Sign, word);
word.Format("%d",k = Mov[i_Sign].begin);
dc.TextOut(450, 117+30*i_Sign, word);
dc.TextOut(525, 117+30*i_Sign, "已分配");
for(i=0; i<Mov[i_Sign].size; i++){
dc.MoveTo(101, start+2*i);
dc.LineTo(198, start+2*i);
}
start = start + 2 * Mov[i_Sign].size;
i_Sign++;
}
if(mov.sign == 2){
name = mov.m_name;
for(i=0; i<i_Sign; i++){
if(name == Mov[i].name){
FillMov(Mov[i].start, Mov[i].size);
switch(Mov[i].sign)
{
case 1: Fill_1(); break;
case 2: Fill_2(); break;
case 3: Fill_3(); break;
case 4: Fill_4(); break;
}
}
}
}
}
}
////////////////////////////////////////////////////////////////////////////
// Draw Portion
void COppView::FillPart_1()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(110, 90, RGB(0,0,0));
dc.FloodFill(625, 117, RGB(0,0,0));
dc.FloodFill(530, 117, RGB(0,0,0));
}
void COppView::FillPart_2()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(110, 135, RGB(0,0,0));
dc.FloodFill(625, 147, RGB(0,0,0));
dc.FloodFill(530, 147, RGB(0,0,0));
}
void COppView::FillPart_3()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(110, 190, RGB(0,0,0));
dc.FloodFill(625, 177, RGB(0,0,0));
dc.FloodFill(530, 177, RGB(0,0,0));
}
void COppView::FillPart_4()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(110, 280, RGB(0,0,0));
dc.FloodFill(625, 207, RGB(0,0,0));
dc.FloodFill(530, 207, RGB(0,0,0));
}
void COppView::ChartForm()
{
CClientDC dc(this);
CPen pen;
CBrush brush;
pen.CreatePen(PS_SOLID,2,RGB(0,0,0));
brush.CreateSolidBrush(RGB(0,125,255));
CPen *oldpen = dc.SelectObject(&pen);
dc.Rectangle(100, 50, 200, 390);
dc.MoveTo(100, 80); dc.LineTo(199, 80);
dc.MoveTo(100, 125); dc.LineTo(199, 125);
dc.MoveTo(100, 185); dc.LineTo(199, 185);
dc.MoveTo(100, 275); dc.LineTo(199, 275);
dc.Rectangle(280, 80, 660, 230);
dc.MoveTo(280, 110); dc.LineTo(659, 110);
dc.MoveTo(280, 140); dc.LineTo(659, 140);
dc.MoveTo(280, 170); dc.LineTo(659, 170);
dc.MoveTo(280, 200); dc.LineTo(659, 200);
dc.MoveTo(340, 80); dc.LineTo(340, 229);
dc.MoveTo(420, 80); dc.LineTo(420, 229);
dc.MoveTo(500, 80); dc.LineTo(500, 229);
dc.MoveTo(600, 80); dc.LineTo(600, 229);
CBrush *oldbrush = dc.SelectObject(&brush);
dc.FloodFill(110, 60, RGB(0,0,0));
dc.SetTextColor(RGB(255,125,0));
dc.SetBkColor(RGB(0,125,255));
dc.TextOut(118, 57, "操作系统");
dc.SetBkColor(RGB(255,255,255));
dc.TextOut(80, 45, "0");
dc.TextOut(70, 75, "20K");
dc.TextOut(70, 120, "28K");
dc.TextOut(70, 180, "60K");
dc.TextOut(65, 270, "124K");
dc.TextOut(65, 380, "256K");
dc.TextOut(295, 87, "区号");
dc.TextOut(350, 87, "分区长度");
dc.TextOut(430, 87, "起始地址");
dc.TextOut(535, 87, "状态");
dc.TextOut(608, 87, "作业号");
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(305, 117, '1'); dc.TextOut(305,147, '2');
dc.TextOut(305, 177, '3'); dc.TextOut(305, 207, '4');
dc.TextOut(372, 117, "8K"); dc.TextOut(368, 147, "32K");
dc.TextOut(368, 177, "64K"); dc.TextOut(364, 207, "132K");
dc.TextOut(448, 117, "20K"); dc.TextOut(448, 147, "28K");
dc.TextOut(448, 177, "60K"); dc.TextOut(444, 207, "124K");
dc.SelectObject(oldpen);
dc.SelectObject(oldbrush);
}
void COppView::SectionChart()
{
CClientDC dc(this);
CPen pen;
CBrush brush;
pen.CreatePen(PS_SOLID,2,RGB(0,0,0));
brush.CreateSolidBrush(RGB(0,125,255));
CPen *oldpen = dc.SelectObject(&pen);
int i,j,k;
for(i=0; i<=16; i++){
k = 60 + 20*i;
dc.MoveTo(99,k);
dc.LineTo(260,k);
}
for(j=0; j<=8; j++){
k = 100 + 20*j;
dc.MoveTo(k,60);
dc.LineTo(k,380);
}
dc.Rectangle(320, 60, 420, 380);
for(i=0; i<=16; i++){
k = 60 + 20*i;
dc.MoveTo(320,k);
dc.LineTo(419,k);
}
dc.Rectangle(460, 80, 680, 340);
dc.MoveTo(460, 100); dc.LineTo(679, 100);
dc.MoveTo(460, 120); dc.LineTo(679, 120);
dc.MoveTo(460, 140); dc.LineTo(679, 140);
dc.MoveTo(460, 160); dc.LineTo(679, 160);
dc.MoveTo(460, 180); dc.LineTo(679, 180);
dc.MoveTo(460, 200); dc.LineTo(679, 200);
dc.MoveTo(460, 220); dc.LineTo(679, 220);
dc.MoveTo(460, 240); dc.LineTo(679, 240);
dc.MoveTo(460, 260); dc.LineTo(679, 260);
dc.MoveTo(460, 280); dc.LineTo(679, 280);
dc.MoveTo(460, 300); dc.LineTo(679, 300);
dc.MoveTo(460, 320); dc.LineTo(679, 320);
dc.MoveTo(460, 80); dc.LineTo(460, 339);
dc.MoveTo(540, 80); dc.LineTo(540, 339);
dc.MoveTo(620, 80); dc.LineTo(620, 339);
CBrush *oldbrush = dc.SelectObject(&brush);
dc.SetTextColor(RGB(255,125,0));
dc.SetBkColor(RGB(0,125,255));
dc.SetBkColor(RGB(255,255,255));
dc.TextOut(80, 60, "0"); dc.TextOut(105, 40, "0");
dc.TextOut(80, 80, "1"); dc.TextOut(125, 40, "1");
dc.TextOut(80, 100, "2"); dc.TextOut(145, 40, "2");
dc.TextOut(80, 120, "3"); dc.TextOut(165, 40, "3");
dc.TextOut(80, 140, "4"); dc.TextOut(185, 40, "4");
dc.TextOut(80, 160, "5"); dc.TextOut(205, 40, "5");
dc.TextOut(80, 180, "6"); dc.TextOut(225, 40, "6");
dc.TextOut(80, 200, "7"); dc.TextOut(245, 40, "7");
dc.TextOut(80, 220, "8");
dc.TextOut(80, 240, "9");
dc.TextOut(75, 260, "10");
dc.TextOut(75, 280, "11");
dc.TextOut(75, 300, "12");
dc.TextOut(75, 320, "13");
dc.TextOut(75, 340, "14");
dc.TextOut(75, 360, "15");
dc.TextOut(300, 60, "0");
dc.TextOut(300, 80, "1");
dc.TextOut(300, 100, "2");
dc.TextOut(300, 120, "3");
dc.TextOut(300, 140, "4");
dc.TextOut(300, 160, "5");
dc.TextOut(300, 180, "6");
dc.TextOut(300, 200, "7");
dc.TextOut(300, 220, "8");
dc.TextOut(300, 240, "9");
dc.TextOut(295, 260, "10");
dc.TextOut(295, 280, "11");
dc.TextOut(295, 300, "12");
dc.TextOut(295, 320, "13");
dc.TextOut(295, 340, "14");
dc.TextOut(295, 360, "15");
dc.TextOut(475, 82, "进程名");
dc.TextOut(550, 82, "分配页面");
dc.TextOut(635, 82, "状态");
dc.TextOut(Frag[0].x, Frag[0].y, 92);
dc.TextOut(Frag[1].x, Frag[1].y, 92);
dc.FloodFill(330, 70, RGB(0, 0, 0));
dc.FloodFill(330, 90, RGB(0, 0, 0));
dc.SelectObject(oldpen);
dc.SelectObject(oldbrush);
}
void COppView::MoveChart()
{
CClientDC dc(this);
CPen pen;
CBrush brush;
pen.CreatePen(PS_SOLID,2,RGB(0,0,0));
brush.CreateSolidBrush(RGB(0,125,255));
CPen *oldpen = dc.SelectObject(&pen);
dc.Rectangle(100, 50, 200, 390);
dc.MoveTo(100, 80); dc.LineTo(199, 80);
dc.Rectangle(280, 80, 600, 230);
dc.MoveTo(280, 110); dc.LineTo(599, 110);
dc.MoveTo(280, 140); dc.LineTo(599, 140);
dc.MoveTo(280, 170); dc.LineTo(599, 170);
dc.MoveTo(280, 200); dc.LineTo(599, 200);
dc.MoveTo(340, 80); dc.LineTo(340, 229);
dc.MoveTo(420, 80); dc.LineTo(420, 229);
dc.MoveTo(500, 80); dc.LineTo(500, 229);
CBrush *oldbrush = dc.SelectObject(&brush);
dc.FloodFill(110, 60, RGB(0,0,0));
dc.SetTextColor(RGB(255,125,0));
dc.SetBkColor(RGB(0,125,255));
dc.TextOut(118, 57, "操作系统");
dc.SetBkColor(RGB(255,255,255));
dc.TextOut(80, 45, "0");
dc.TextOut(70, 75, "16K");
dc.TextOut(70, 120, "40K");
dc.TextOut(70, 195, "80K");
dc.TextOut(65, 270, "120K");
dc.TextOut(65, 380, "180K");
dc.TextOut(287, 87, "作业号");
dc.TextOut(350, 87, "分区长度");
dc.TextOut(430, 87, "起始地址");
dc.TextOut(535, 87, "状态");
dc.SelectObject(oldpen);
dc.SelectObject(oldbrush);
}
void COppView::FillMov(int x, int y)
{
CClientDC dc(this);
CPen pen;
pen.CreatePen(PS_SOLID, 1, RGB(255,255,255));
CPen *oldpen = dc.SelectObject(&pen);
int i;
for(i=0; i<y; i++){
dc.MoveTo(101, x+2+2*i);
dc.LineTo(198, x+2+2*i);
}
dc.SelectObject(oldpen);
}
void COppView::FillPage(int x, int y)
{
CClientDC dc(this);
CPen pen;
pen.CreatePen(PS_SOLID, 1, RGB(255,255,255));
CPen *oldpen = dc.SelectObject(&pen);
int i;
for(i=1; i<=y; i++){
dc.MoveTo(321, x+2*i);
dc.LineTo(418, x+2*i);
}
dc.SelectObject(oldpen);
}
void COppView::Fill_1()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(290, 115, RGB(0,0,0));
dc.FloodFill(350, 115, RGB(0,0,0));
dc.FloodFill(430, 115, RGB(0,0,0));
dc.FloodFill(510, 115, RGB(0,0,0));
}
void COppView::Fill_2()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(290, 145, RGB(0,0,0));
dc.FloodFill(350, 145, RGB(0,0,0));
dc.FloodFill(430, 145, RGB(0,0,0));
dc.FloodFill(510, 145, RGB(0,0,0));
}
void COppView::Fill_3()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(290, 175, RGB(0,0,0));
dc.FloodFill(350, 175, RGB(0,0,0));
dc.FloodFill(430, 175, RGB(0,0,0));
dc.FloodFill(510, 175, RGB(0,0,0));
}
void COppView::Fill_4()
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc.FloodFill(290, 205, RGB(0,0,0));
dc.FloodFill(350, 205, RGB(0,0,0));
dc.FloodFill(430, 205, RGB(0,0,0));
dc.FloodFill(510, 205, RGB(0,0,0));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -